Blog Kategorileri

Son Eklenen Konular

Jquery ajax ile ckeditor html veri gönderimi
Resim

Ajax çalışan bir forum üzerinde ckeditör ve benzeri bir editör kullanıyor ve post sonucunu eksik alıyorsanız  çözüm bu satırlar arasında olabilir. Nitekim dataType html olarak kullanmama rağmen unutulan bir eksik yüzüne 30 dk kayıp ettim yani uğraştım biraz.

name ve id değeri açıklama olan bir textareayı ckeditor olarak kullandım. Normalde bilindik metinler içeren formumda herhangi bir sıkıntı yaşamaz iken table ve bolca html tag olan büyük bir data aktarılma işleminde  datanın php tarafında yarısının olmadığını görünce bu makaleyi aynı duruma düşenler için yayınlama gereği duydum.

textarea yı ckeditor olarak uygulamak için

javascript

CKEDITOR.replace("aciklama"); 

tanımlası yapmanız yeterli tabi ckeditorun kendi js dosyasını import ettikten sonra

form submit işlemi sırasında formu serialize edip ajax ile post etme işlemi yapacak iseniz serialize metodundan önce

javascript

for(var editorler in CKEDITOR.instances){
                CKEDITOR.instances[editorler].updateElement();
            }

yukardaki gibi işlem yapabilirsiniz. editör içerisinde bulanan kodlar normalde tanımladığınız textarea lar ile post edilecektir.


Form olmadan sadece editörün içeriğini post etmek gibi bir ihtiyacınız olursa

javascript

var editor = CKEDITOR.instances.aciklama;
var icerik = editor.getData();
var forms = "aciklama2="+icerik;

yukarda icerik değişkenimi editörün getData metodu ile alıp serialize sonrası oluşan string ifademe ekliyorum, ancak bahsetmek istediğim sorun ile karşılaştım. Bunun üzerine kodu alttaki gibi tekrar değiştirdim

javascript

var editor = CKEDITOR.instances.aciklama;
var icerik = editor.getData();
var forms = "aciklama2="+encodeURIComponent(icerik);

tek fark icerik adlı değişkenimi encodeURIComponent metodu ile encode etmiş oldum. Sizinde anlayacağınız üzere kod içerisinde bulunan özel karakterleri özellikle & başta olmak üzere dönüştürmüş ve sorunsuz bir post işlemi gerçekleştirdim.

 

İşlem sırasında kullanmış olduğum kod

javascript

var editor = CKEDITOR.instances.aciklama;
var icerik = editor.getData();
var forms = "aciklama2="+encodeURIComponent(icerik);
var sc = "type=command&object=article&action=save&"+forms;
$.ajax({type: 'POST', url: 'index.php', dataType:"html", data: sc,  success: function(response) {
     $("#formSonuc").html(response);
}, error: function (req, status, error) {}});

comments powered by Disqus