v2.5.2
Giriş yap

CKEditor ile AJAX post etme sorunu

bugraskl
826 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.

zfactor
1230 gün önce

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

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