ปัญหา Ajaxกับwysiwyg
กำลังเขียนระบบส่งเมล์ค่ะ โดยContent สามารถจัดรูปแบบด้วย wysiwyg แล้วส่งค่าให้อีก page ด้วย ajax แต่ค่าที่จัดรูปแบบด้วย wysiwyg ส่งไม่ได้ค่ะ แต่ค่าที่เป็น textfield ธรรมดาส่งได้ค่ะ เกิดจากอะไรเหรอค่ะ รบกวนผู้รู้ด้วยค่ะ ไม่เก่ง ajax เลยค่ะ
ตัวอย่างcodeค่ะ
if (action=="sendtest") {
var url="SendNewsletter.php";
}else{
var url="add_newsletter_template.php";
}
var params=$("formID").serialize();
new Ajax.Request(url, {onComplete: showResponse, onException:showException, onFailure:showException, asynchronous:true, method: 'post', evalScripts:false, postBody:params});
ตัวอย่างcodeค่ะ
if (action=="sendtest") {
var url="SendNewsletter.php";
}else{
var url="add_newsletter_template.php";
}
var params=$("formID").serialize();
new Ajax.Request(url, {onComplete: showResponse, onException:showException, onFailure:showException, asynchronous:true, method: 'post', evalScripts:false, postBody:params});
ถ้าจะส่งผ่าน mail ของ PHP กำหนด Header เป็น HTML หรือยังครับ ดู mail HTML
ปัญหาไม่ได้อยู่ที่การส่งเมล์ค่ะ ปัญหาคือการส่งค่าใน textarea ที่ใช้ wysiwyg จัดรูปแบบค่ะ
สรุปแล้วมี 2 pageค่ะ
1.index.php เป็นหน้าที่ มี form ให้กรอก หัวข้อของ email แล้วเนื้อหาของemail(textarea ที่ใช้ wysiwyg จัดรูปแบบ)
2.send_mail.php เป็นหน้าที่ใช้รับค่าจาก index.php โดยใช้ ajax code จากข้างบนส่ง
แต่ปรากฎว่าค่าที่ส่งได้ มีแต่ หัวข้อของemail ซึ่งเป็น textfield ธรรมดา แต่เนื้อหาของemail(textarea ที่ใช้ wysiwyg จัดรูปแบบ) ส่งไม่ได้ค่ะ กลายเป็นค่าว่าง เลยคิดว่าปัญหาน่าจะอยู่ที่ Ajax.Request ที่ไม่สามารถส่งค่าจาก form ในรูปของ html ได้ค่ะ
เพราะถ้าเป็นการส่งค่าโดยวิธีธรรมดาจะส่งได้ พอเปลี่ยนเป็นใช้ ajax ส่งแล้วมีปัญหาค่ะ
เพิ่งค้นกระทู้เก่าๆ เจอหัวข้อ GAJAX กับ CKEditor 3.0.1http://www.goragod.com/forum.html?wbid=1310&q=ajax
ปัญหาน่าจะเหมือนกันค่ะ แต่เปลี่ยนจาก CKEditor 3.0.1เป็น wysiwyg น่ะค่ะ แล้วก็พยายามไปอ่าน document ของ wysiwyg
แต่ไม่มีที่เขียนถึงค่ะ
ปัญหาเกิดจากเราไม่สามารถอ่านข้อความตรงๆจาก textarea ได้ครับ เช่น textarea.value จะใช้ไม่ได้กับ wysiwyg โดยทั่วไป
การแก้ไขมีวิธีเดียวครับคือต้องไปหาเอาจาก document ของ wysiwyg ที่ใช้ ซึ่งจะแตกต่างกันตามแต่ละยี่ห้อครับ หรือดูจากตัวอย่างของ wysiwyg นั้นๆ (มันจะมีฟังก์ชั่นของ Javascript ที่สามารถอ่านข้อความที่เขียนได้ครับ)
ขอบคุณค่ะ สงสัยจะจนปัญญาแล้วค่ะ เพราะไปอ่าน document ก็บอกวิธีใช้บรรทัดเดียวเลยค่ะ พยายามมา 2 วัน คงต้องส่งโดยวิธีธรรมดาแล้วค่ะ
1.ปกติแล้ว ฟอร์มส่งเมล์ เมื่อส่งแล้วมักจะต้องเคลียร์ฟอร์ม ดังนั้น submit ไปเลยน่าจะดีกว่า ไม่ต้องมาเขียนโค้ดเพื่อเคลียร์ฟอร์มเอง
2.การส่งโดยการ submit ผ่านฟอร์ม โดยปกติ wysiwyg ทั่วไปทำได้ทั้งนั้น โดยรับค่าที่ name ของ textarea ที่เรากำหนด ดังนั้นมันจะเป็นการง่ายมากหากใช้วิธีนี้
คือทำ form sent mail ที่สามารถ save draft ได้ด้วยน่ะค่ะ คือทั้ง send mail หรือ save draft ได้ใน form เดียวน่ะค่ะ เหมือน hotmail น่ะ ความจริงก็ submit ผ่าน form ง่ายกว่ามากจริงๆค่ะ หุหุ