v2.5.2
Giriş yap

CKEditor ile AJAX post etme sorunu

bugraskl
819 defa görüntülendi

Merhabalar, geliştirdiğim blog projesi için javascript, ajax, php kullanarak otomatik taslağa kaydet uygulaması yapmaya çalışırken bir problemle karşılatım.
İçerik oluştururken CKEditor kullanıyorum. CKEditorden aldığım veriyi ajax ile post ederken birçok problemle karşılatım.
Örneğin:
-İçerikte birden fazla boşluk varsa kalan kısmı ajax post etmiyor.

-Türkçe karakterlerden ç,ö gibi karakterlerden sonrasını kaydetmiyor.
Bu sorunu şu şekilde çözdüm.

CKEDITOR.config.entities_latin=!0;
CKEDITOR.config.entities_latin=false;

AJAX kodlarımda şu şekilde.

function taslak() {
    var yazibaslik = $('#yazi_baslik').val();
    var yazietiket = $('#yazi_etiket').val();
    var yaziicerik = CKEDITOR.instances.yazi_icerik.getData();
    $('#buton').text('Taslak Kaydediliyor..');
    $.ajax({
        type: "POST",
        url: "https://localhost/blog/yonetim_paneli/includes/ajax/taslak.php",
        data: "yaziicerik="+yaziicerik+'&yazietiket='+yazietiket+'&yazibaslik='+yazibaslik,
        success : function (durum) {
            if(durum=='okey'){
                $('#buton').text(' Taslak Kaydedildi!');
            }else if(durum=="hata"){
                $('#buton').text(' İşlem Başarısız!');
            }
        }
    });
}

PHP kodlarım ise bu şekilde.

$yazi_icerik = $_POST['yaziicerik'];
$yazi_baslik = $_POST['yazibaslik'];
$yazi_etiket = $_POST['yazietiket'];

$query = $VT_baglan->prepare("INSERT INTO taslak SET
taslak_icerik = ?,
taslak_etiket = ?,
taslak_baslik = ?
");
$insert = $query->execute(array(
    $yazi_icerik,
    $yazi_etiket,
    $yazi_baslik
));
if ( $insert ){
    $last_id = $VT_baglan->lastInsertId();
    print "okey";
}

Bu sorun sadece AJAX ile post etmeye çalışırsam oluyor. Doğrudan PHP ile formu submit edip post edersem bir sorun oluşmuyor.

<div class="col-12">
<textarea class="form-control" id="yazi_icerik" name="yazi_icerik"
  rows="6"></textarea>
</div>

Son olarak bu da formun HTML kısmı.
Daha önce bu sorunla karşılaşmış ve çözmüş biri varsa yardımlarınıza açığım. Çok teşekkürler.

Cevap yaz
Cevaplar (3)
zfactor
1220 gün önce

var yazi_icerik=encodeURIComponent($("#yazi_icerik").val());

bu şekilde kullanırsan boşluk problemi olmaz sanırım.

bllk3
1218 gün önce

css i benim gibi yeni öğrenen birileri bana ulaşabilir mi arkadaşlık kuralım :)

bugraskl
1220 gün önce

@zfactor
Çok teşekkür ediyorum. Bu şekilde çözüldü problem.

encodeURIComponent(CKEDITOR.instances.yazi_icerik.getData());