A-AA+then

ปัญหา Ajaxกับwysiwyg

1,292
กำลังเขียนระบบส่งเมล์ค่ะ โดย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});
    
    
     

8 ความคิดเห็น

ไม่รู้ว่าใช้อะไรในการส่งเมล์นะครับ ถ้าต้องการส่งเมล์แบบ HTML ผมแนะนำให้ใช้ PHPMailer ในการส่งครับ

ถ้าจะส่งผ่าน mail ของ PHP กำหนด Header เป็น HTML หรือยังครับ ดู mail HTML
1

    ปัญหาไม่ได้อยู่ที่การส่งเมล์ค่ะ ปัญหาคือการส่งค่าใน 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 ส่งแล้วมีปัญหาค่ะ 
    
     

2

    เพิ่งค้นกระทู้เก่าๆ เจอหัวข้อ GAJAX กับ CKEditor 3.0.1http://www.goragod.com/forum.html?wbid=1310&q=ajax
    ปัญหาน่าจะเหมือนกันค่ะ แต่เปลี่ยนจาก CKEditor 3.0.1เป็น wysiwyg น่ะค่ะ แล้วก็พยายามไปอ่าน document ของ wysiwyg
    แต่ไม่มีที่เขียนถึงค่ะ

3

เข้าใจและ...

ปัญหาเกิดจากเราไม่สามารถอ่านข้อความตรงๆจาก textarea ได้ครับ เช่น textarea.value จะใช้ไม่ได้กับ wysiwyg โดยทั่วไป

การแก้ไขมีวิธีเดียวครับคือต้องไปหาเอาจาก document ของ wysiwyg ที่ใช้ ซึ่งจะแตกต่างกันตามแต่ละยี่ห้อครับ หรือดูจากตัวอย่างของ wysiwyg นั้นๆ (มันจะมีฟังก์ชั่นของ Javascript ที่สามารถอ่านข้อความที่เขียนได้ครับ)
4

    ขอบคุณค่ะ สงสัยจะจนปัญญาแล้วค่ะ เพราะไปอ่าน document ก็บอกวิธีใช้บรรทัดเดียวเลยค่ะ พยายามมา 2 วัน คงต้องส่งโดยวิธีธรรมดาแล้วค่ะ

5

ผมว่านะ ทำไม่ไม่ submit ผ่านฟอร์มละครับ เพราะมันน่าจะได้ผลดีกว่า เช่น

1.ปกติแล้ว ฟอร์มส่งเมล์ เมื่อส่งแล้วมักจะต้องเคลียร์ฟอร์ม ดังนั้น submit ไปเลยน่าจะดีกว่า ไม่ต้องมาเขียนโค้ดเพื่อเคลียร์ฟอร์มเอง
2.การส่งโดยการ submit ผ่านฟอร์ม โดยปกติ wysiwyg ทั่วไปทำได้ทั้งนั้น โดยรับค่าที่ name ของ textarea ที่เรากำหนด ดังนั้นมันจะเป็นการง่ายมากหากใช้วิธีนี้
6

    คือทำ form sent mail ที่สามารถ save draft ได้ด้วยน่ะค่ะ คือทั้ง send mail หรือ save draft ได้ใน form เดียวน่ะค่ะ เหมือน hotmail น่ะ ความจริงก็ submit ผ่าน form ง่ายกว่ามากจริงๆค่ะ หุหุ

7

จะ draft ไว้ ก็ทำตอน submit ก้เหมือนกันแหละครับ
8
^