Doğru Cevap
-
serialize()'dan sonra virgül olması gerekmiyor muydu?
-
yunusy
Kodda hata olabilir, bilgisayarımdaki kodu kopyala yapıştır yapamadım ama dediğiniz doğru, ondan sonra virgül olması lazım. Başka yerde de hata olabilir ama kendi yazdığım kodlar çalışıyor. Buraya ezberden yazdığım için problem olmuş.12 yıl önce yazılmış -
necmettin
Boş veri mi geliyor? Yani alert()'in sonucunda ekrana array() diye uyarı mı geliyor, yoksa hiçbirşey gelmiyor mu?
$.ajax()'dan önce sayfa içerisine oluşturacağın geçici bir div içine $(#..).serialize() sonucunu bastırdığında ne alıyorsun?12 yıl önce yazılmış -
yunusy
alert($('#formalani').serialize) yaptığımda, postlanacak veriyi doğru şekilde görüyorum(escape edilmiş olarak).
Ama Ajax ile dönen veriyi alert(ajaxCevap) şeklinde gösterdiğimde boş bir sonuç çıkıyor
Bir array geliyor ama 'message=> ' şeklinde veri geliyor, yani içeriği boş.Tinymce editörü kaldırıp aynı şekilde post ettiğimde ise veri normal görünüyor12 yıl önce yazılmış -
necmettin
Biraz araştırdım. Anladığım kadarıyla problem şu:
TinyMCE editörü metni normalde textarea içinde değil ayrı bir yerde tutuyor. Form submit() olunca o ayrı tuttuğu veriyi tinyMCE.triggerSave() ile ilgili textarea içine koyuyor.
Senin yaşadığın probleme dönersek: Sen formun submit() olayını kapattığın için triggerSave() hiç çalışmıyor.
Çözüm: $.ajax()'dan önce tinyMCE.triggerSave() koymak.12 yıl önce yazılmış
-
Cevaplar
-
TinMCE direkt olarak textarea'ya yazmadığı için böyle bir problem oluşuyor. Bu işlemi elle tetiklemek için onclick kısmına öncelikle şu kodu yerleştirmelisin;
tinyMCE.triggerSave();
Şu şekilde denedim çalışıyor;<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ mode : "textareas", theme : "simple" }); </script> </head> <body> <form action="javascript:void(0)" method="post" id="formalani"> <textarea name="message" id="message"></textarea> <button id="dugme">düğme</button> </form> <script> $('#dugme').click(function() { tinyMCE.triggerSave(); $.ajax({ type: 'POST', url: 'sayfa.php', data: $('#formalani').serialize(), success: function(ajaxCevap){ alert(ajaxCevap); } }); }); </script> </body>
-
madem öyle kardeşim bende sana bir örnek vereyim :)
encodeURIComponent(tinyMCE.get('text_area').getContent());
bununla yazını yollayı denermisin bende sorunsuz çalışıyor ajax kullanıyorum bende -
4 Yıl öncesinde sorulmuş bu soru ve bu soruya yazılmış cevaplar beni büyük bir sorundan kurtardı.
Cevap veren arakdaşlara sonsuz teşekkürlerimi sunarım. :)