• 07-06-2021, 23:53:07
    #1
    Merhaba Arkadaşlar
    Mysql veritabanımda sayfa düzenle tablosundaki veriyi güncelleme yaptığımda ckeditördeki veri hariç hepsini güncelleme yapıyor, textarea daki ckeditör idsini kaldırdığımda onuda güncelleme yapıyor, ckeditör idsini eklediğimde güncelleme yapmıyor bu konuda yardımlarınızı bekliyorum, kod yapım aşağıdaki gibi

    <?php
    if((!isset($_GET['id']) || empty($_GET['id']))){
        include "404.php";
        exit;
    }
    $id=temizle($_GET['id']);
    $bilgicek = $db->prepare("Select * From sayfalarim Where id=?");
    $bilgicek->execute([$id]);
    $varmi = $bilgicek->rowCount();
    if($varmi<1){
        include "404.php";
        exit;
    }
    $bilgicek = $bilgicek->fetch(PDO::FETCH_OBJ);
    ?>
    <div class="container-fluid">
        <div class="row">
            <div class="col-12">
                <div class="page-title-box d-sm-flex align-items-center justify-content-between">
                    <div class="page-title-left">
                        <ol class="breadcrumb m-0">
                            <?php gezintiCubugu($sayfaBilgi->id,false);?>
                        </ol>
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        <form role="form" class="form-horizontal" id="dilekleform" method="POST" enctype="multipart/form-data">
                            <div class="form-group row mb-4">
                                <label for="baslik" class="col-md-3 col-form-label">Başlık</label>
                                <div class="col-md-9">
                                    <input type="text" class="form-control" id="baslik" name="baslik" value="<?=$bilgicek->baslik;?>">
                                </div>
                            </div>
                            
                            <div class="form-group row mb-4">
                                <label for="aciklama" class="col-md-3 col-form-label">Kısa Açıklama</label>
                                <div class="col-md-9">
                                    <textarea type="text" class="form-control" id="aciklama" name="aciklama"><?=$bilgicek->aciklama;?></textarea>
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <label for="icerik" class="col-md-3 col-form-label">İçerik</label>
                                <div class="col-md-9">
                                    <textarea name="icerik" id="icerik"><?=$bilgicek->icerik;?></textarea>
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <label for="title" class="col-md-3 col-form-label">Title</label>
                                <div class="col-md-9">
                                    <input type="text" class="form-control" id="title" name="title" value="<?=$bilgicek->title;?>">
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <label for="description" class="col-md-3 col-form-label">Description</label>
                                <div class="col-md-9">
                                    <textarea type="text" class="form-control" id="description" name="description"><?=$bilgicek->description;?></textarea>
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <label for="keywords" class="col-md-3 col-form-label">Keywords</label>
                                <div class="col-md-9">
                                    <input type="text" class="form-control" id="keywords" name="keywords" value="<?=$bilgicek->keywords;?>">
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <label for="resim" class="col-md-3 col-form-label">Fotoğraf</label>
                                <div class="col-md-9">
                                    <input type="file" class="form-control" id="resim" name="resim">
                                    <div class="col-md-12 mt10"><img src="../upload/sayfa/<?=$bilgicek->resim;?>" alt=""/>
                                    </div>
                                </div>
                            </div>
                            <div class="form-group row mb-4">
                                <div align="right">
                                    <button type="button" veriid="<?=$bilgicek->id;?>"  onclick="editortamam();" id="buttontikla" form-adi="dilekleform" ekle="sayfaduzenle" resimid="resim" resimtur="tek" class="btn btn-success waves-effect waves-light">Düzenle</button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script src="ckeditor/ckeditor.js"></script>
    <script>
        CKEDITOR.replace('icerik')
    </script>
  • 07-06-2021, 23:58:23
    #2
    Textarea nın classına ekleyin ckeditor ü
  • 07-06-2021, 23:59:59
    #3
    wisex adlı üyeden alıntı: mesajı görüntüle
    Textarea nın classına ekleyin ckeditor ü
    Merhaba Hocam
    classınıda eklediğimde aynı Hocam
  • 08-06-2021, 00:03:56
    #4
    Tam olarak anlamadım fakat ck editör de tırnak işareti felan kullanıyorsanız onların başına ters slash koymanız lazım. mysqli_real_escape_string fonksiyonunu kullanmak gibi. problem bundan kaynaklanıyor olabilir
  • 08-06-2021, 00:08:57
    #5
    Castaway adlı üyeden alıntı: mesajı görüntüle
    Tam olarak anlamadım fakat ck editör de tırnak işareti felan kullanıyorsanız onların başına ters slash koymanız lazım. mysqli_real_escape_string fonksiyonunu kullanmak gibi. problem bundan kaynaklanıyor olabilir
    Merhaba Hocam
    textarea ya ckeditör entegre ettiğimde veritabanımda, icerik sütunundaki veriyi güncelleme yapmıyor, textarea daki ckeditörün idsini kaldırdığımda icerik sütunundaki veriyi güncelleme yapıyor, tam olarak neden güncelleme yapmadığını anlamadım hocam
  • 08-06-2021, 00:26:29
    #6
    Üyeliği durduruldu
    id ile name kisimdakilerin ismini aynı yapmadan dener misiniz?

    id: editor2 olsun veritabanındaki ise farklı bir isim olsun öyle dener misiniz?
  • 08-06-2021, 00:31:46
    #7
    batuhanx adlı üyeden alıntı: mesajı görüntüle
    id ile name kisimdakilerin ismini aynı yapmadan dener misiniz?

    id: editor2 olsun veritabanındaki ise farklı bir isim olsun öyle dener misiniz?
    Merhaba Hocam
    dediğin şekilde yaptım, olmadı hocam
    <div class="form-group row mb-4">
                                <label for="editor1" class="col-md-3 col-form-label">İçerik</label>
                                <div class="col-md-9">
                                    <textarea name="icerik" id="editor1"  class="ckeditors"><?=$bilgicek->icerik;?></textarea>
                                </div>
                            </div>
    <script src="ckeditor/ckeditor.js"></script>
    <script>
        CKEDITOR.replace('editor1')
    </script>
  • 08-06-2021, 00:43:48
    #8
    Hocam formu post ettiğin zaman ckeditordeki veri sana geliyor mu kontrol ettin mi ? Eğer gelmiyorsa formu ajax ile göndermeyi deneyin. Çünkü ckeditor textareyı değiştiriyor diye hatırlıyorum.
  • 08-06-2021, 00:56:02
    #9
    SemihC adlı üyeden alıntı: mesajı görüntüle
    Hocam formu post ettiğin zaman ckeditordeki veri sana geliyor mu kontrol ettin mi ? Eğer gelmiyorsa formu ajax ile göndermeyi deneyin. Çünkü ckeditor textareyı değiştiriyor diye hatırlıyorum.
    Merhaba Hocam

    daha önceki veri gönderme yapısında dil yapısı vardı, onu iptal ettim, Hocam dediğin gibi ckeditor textareyı değiştiriyor olabilir

    ckeditor editör kodlarıda, ajax ve veri gönderme kodları aşağıdaki gibi


    veri gönderme kodları
    <div class="form-group">
                                                    <label for="dil" class="col-sm-3 control-label"><span class="flag-xs flag-<?=$dilcek->dil?> mr10"></span><?=dil("İçerik")?></label>
                                                    <div class="col-sm-9">
                                                    <textarea   dilid="<?=$dilcek->id?>"  id="aciklamaedittor<?=$dilcek->id?>" class="ckeditors"><?=cek("sayfalar","(id='$bilgicek->id' || icerikid='$bilgicek->id') && dil='$dilcek->id' ","icerik")?></textarea>
                                                    <textarea name="icerik[<?=$dilcek->id?>]" id="aciklama-<?=$dilcek->id?>"  style="display:none;" ><?=cek("sayfalar","(id='$bilgicek->id' || icerikid='$bilgicek->id') && dil='$dilcek->id' ","icerik")?></textarea>
                                                </div>
                                            </div>
    -----------------------------------------------------------------------------------------------------
    ckeditor editör kodları

    <script src="ckeditor/ckeditor.js"></script>
    <script type="text/javascript">
        var yeniarray={};
        $('.ckeditors').each(function(index, element){
            var dilids=$(element).attr("dilid");
            var editorids=$(element).attr("id");
            yeniarray[index]={dil:dilids,editorid:editorids};
            CKEDITOR.replace( $(element).attr("id"));
        });
        function editortamam(){
            $.each(yeniarray, function(key, value){
                $("#aciklama-"+value.dil).val(CKEDITOR.instances[value.editorid].getData());
            });
        }
    </script>
    -----------------------------------------------------------------

    Ajax post kodlarım
    aşağıdaki gibi

    $("body").on("click", "#buttontikla", function(button){
        yukleniyor(true);
        var formadi=$(this).attr("form-adi"),ekle=$(this).attr("ekle"),resim=$(this).attr("resimid"),resimtur=$(this).attr("resimtur"),id=$(this).attr("veriid"),multiselect=$(this).attr("selectid"),multi=$(this).attr("multi"),resim2=$(this).attr("resimid2"),resimtur2=$(this).attr("resimtur2");
        var form_data = new FormData();
        try{
            if(resim2!=null ||resim2!=""){
                if(resimtur2=="tek"){
                    var file_data=null;
                    file_data = $('#'+resim2).prop('files')[0];
                    form_data.append(resim2, file_data);
                }
            }
            if(resim!=null ||resim!=""){
                if(resimtur=="tek"){
                    var file_data=null;
                    file_data = $('#'+resim).prop('files')[0];
                    form_data.append(resim, file_data);
                } else {
                    var ins = document.getElementById(resim).files.length;
                    for (var x = 0; x < ins; x++){
                        form_data.append(resim+"[]", document.getElementById(resim).files[x]);
                    }
                }
            }
        }
        catch(e){
            console.log("Resim Hata:"+e);
        }
        if(multiselect!="undefined" && multiselect!=null){
            var values = $("#"+multiselect).serialize();
            form_data.append(multiselect, values);
        }
        form_data.append(ekle, "1");
        if(id!=null){
            form_data.append("id", id);
        }
        var other_data = $('#'+formadi).serializeArray();
        $.each(other_data,function(key,input){
            form_data.append(input.name,input.value);
        });
        if(multi!="undefined" && multi!=null){
            var values = $("#"+multi).val();
            form_data.append(multi, values);
        }
        jQuery.ajax({
            type: 'POST',
            dataType: 'text',
            cache: false,
            contentType: false,
            processData: false,
            url: 'isle.php',
            data: form_data,
            error:function(hata){
                console.log(hata);
            },
            success: function(veri){
                yukleniyor(false);
                try{
                    var oku=JSON.parse(veri);
                    if(oku.bildirim){
                        $('#bildirim').slideToggle();
                        $("#bildirim").html(oku.bildirim);
                        $('#bildirim').slideToggle();
                    }
                    if(oku.yonlendir){
                        yonlendir(oku.yonlendir,oku.yonlendirsure);
                    }
                }
                catch(e){
                    alert(veri);
                }
            }
        });
    });