A-AA+then

สอบถามเรื่องการใช้ Ajax ค่ะ

1,685
พอดีว่าได้ทดลองเอา code Ajax จาก หน้านี้ ไปใช้ในการทำงาน แต่มีปัญหาตรงที่ว่าไม่สามารถเอาค่าที่ส่งกลับมาหน้าหลักมาใช้งานต่อได้น่ะค่ะ คือค่าที่นำไปประมวลผลในหน้าสองสามารถส่งกลับมาหน้าแรกได้ สามารถโชว์ใน textbox ตามตัวอย่างได้ แต่ไม่สามารถนำค่ามาแสดงผลแบบอื่นได้น่ะค่ะ (คือในงานจะต้องใช้ค่าแสดงผลลงบนกราฟที่เขียนด้วย html5 แต่ทำไม่ได้เลย) ไม่ทราบว่าพอทราบวิธีแก้ไขไหมคะ

ขอบคุณค่ะ

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

เดาว่าต้องการแสดงผลกราฟแบบ realtime....

ถ้าจะให้แสดงผลแบบ realtime ที่กราฟได้ ปัญหาคงอยู่ที่กราฟแล้วละครับ คงไม่ใช่ Ajax

เรื่องของเรื่องคือ Ajax มันสามารถแสดงผลลงใน textbox ได้แล้วตามความต้องการ ดังนั้น Ajax คงทำงานได้สมบูรณ์ตามหน้าที่ของมันแล้ว

ทีนี้เวลาวาดกราฟ ให้ออกแบบกราฟโดยวาดจากข้อมูลจาก Textbox ซึ่งถ้าข้อมูลจาก textbox อาจเปลี่ยนแปลงได้ตลอดเวลา ก็คงต้องมีการจับเวลาเพื่ออัปเดทกราฟกันละครับ

หรือ อาจจะอัปเดทกราฟทุกครั้งที่มีการเรียกใช้ Ajax ก้ได้

ตัวอย่างกราฟที่เป็นไปได้คือแบบนี้ละครับ http://www.anxioussilence.co.uk/blog/2010/04/27/html-5-graph-slider/
1

อ๋อ... เข้าใจแล้วค่ะ ขอบคุณนะคะ  

แต่ทีนี้คือที่ไม่แน่ใจว่าปัญหาเกิดจากอะไรน่ะค่ะ ไม่ทราบว่าจะถามเพิ่มเติมได้ไหมคะ  :38:

คือการเอาข้อมูลขึ้นกราฟ ก่อนอื่นจะต้องแปลงค่าที่ประมวลผลได้จากหน้าที่สองมาเป็น int เสียก่อน ซึ่งหนูไม่ค่อยแน่ใจว่า ควรจะแปลงในหน้าที่สองให้เสร็จสรรพเลยแล้วค่อยโยนมาหน้าแรก หรือควรจะโยนมาหน้าแรกแล้วค่อยแปลงก่อนขึ้นกราฟดี เพราะพยายามลองทำแบบที่สองแล้ว แต่ค่าไม่เข้าตัวแปรที่ประกาศเอาไว้รองรับในหน้าแรกเลยน่ะค่ะ เลยไม่รู้ว่าเกิดจากอะไร :39:

ขอบคุณค่ะ :39:
2

อ้างจากคำตอบที่ #2คือการเอาข้อมูลขึ้นกราฟ ก่อนอื่นจะต้องแปลงค่าที่ประมวลผลได้จากหน้าที่สองมาเป็น int เสียก่อน ซึ่งหนูไม่ค่อยแน่ใจว่า ควรจะแปลงในหน้าที่สองให้เสร็จสรรพเลยแล้วค่อยโยนมาหน้าแรก หรือควรจะโยนมาหน้าแรกแล้วค่อยแปลงก่อนขึ้นกราฟดี เพราะพยายามลองทำแบบที่สองแล้ว แต่ค่าไม่เข้าตัวแปรที่ประกาศเอาไว้รองรับในหน้าแรกเลยน่ะค่ะ เลยไม่รู้ว่าเกิดจากอะไร :39:

ถ้ากราฟต้องการข้อมูลที่เป็นตัวเลข ก็ต้องแปลงเป็นตัวเลขเมื่อ Graph ต้องการอ่านนะครับ ถึงแม้ว่าจะแปลงเป็นตัวเลขแล้วใส่ input ไว้ ค่าที่อ่านจาก input ก็ยังเป็น string อยู่ดีครับ

ผมไม่รู้ว่าออกแบบกราฟเองหรือเปล่า แต่โดยทั่วไปแล้ว ถ้ากราฟที่แจกกันอยู่ ถ้ามันต้องการตัวเลขมันก็จะต้องแปลงเป็นตัวเลขที่กราฟเองเสมอ เพื่อความปลอดภัยครับ
3

ใช้ library ของ Rgraph น่ะค่ะ แต่เหมือนใน document จะเขียนกำกับไว้ว่า ระวังเวลาใช้ ajax เพราะค่าจะเป็นสตริง ต้องแปลงก่อนน่ะค่ะ

ขอบคุณสำหรับคำปรึกษานะคะ  ถ้ามีอะไรจะมาขอคำแนะนำใหม่นะคะ  >/////< ขอบคุณค่ะ
4

คำแนะนำเพิ่มเติม ลองเปลี่ยนไปใช้ตัวแปรแทน input สิครับ โดยที่เมื่อรับค่าจาก Ajax แล้วก็ให้เอาใส่ตัวแปร พร้อมกับแปลงเป็นตัวเลขเลยน่าจะง่ายกว่าเอาไปพักใส่ input

หรือถ้าจำเป็นต้องแสดงค่าด้วยที่ input ก็เอาค่าใส่มันทั้ง input หรือตัวแปรด้วยเลยก็ได้ครับ
5

ขอบคุณค่ะ :D
6

พี่คะ ถ้าหากเก็บค่าที่ได้ใส่ตัวแปรแล้ว แต่มันเป็น javascript จะโยนมาใส่ใน php โดยไม่ต้องกดปุ่ม submit อะไร จะทำได้โดยวิธีไหนบ้างเหรอคะ พอดีเจอวิธีแต่แบบให้ต้องกด submit น่ะค่ะ เพราะต้องเอาค่าที่ได้มาตัดสตริงแล้วแปลงเป็น int เก็บเป็นอาร์เรย์แล้วค่อยเอาเข้ากราฟ (พอจะเข้าใจไหมคะ T-T)  
7

Ajax Auto Refresh ครับ
8

ขอบคุณค่า :D
9

สวัสดีค่ะ  ผ่านไปเกือบ 2 เดือน ที่จริงพักงานส่วนตรงนี้ไปพักใหญ่ๆ แล้วเมื่ออาทิตย์ก่อนเพิ่งจะกลับมาทำต่อ ตอนนี้หนูใช้วิธีเอาค่าที่ได้กลับมาเป็นสตริงยาวๆ มาหั่นใส่ตัวแปร แต่กราฟที่ใช้ยังไม่สามารถโชว์ข้อมูลได้ หนูไม่แน่ใจว่าสาเหตุเกิดจากอะไร

จาก doc ของทางเวปกราฟที่ใช้ เค้าแนะนำการใช้เอแจกซ์ดังนี้ค่ะ http://www.rgraph.net/docs/index.html#ajax ซึ่งเมื่อเปิดดูโค้ดของ gajax ดูแล้วมีพร้อมหมดแล้ว พอไล่ดูการทำงานไปเรื่อยๆ หนูคิดว่ามันน่าจะติดตรงที่ window.onload = function () น่ะค่ะ การจะโชว์กราฟได้เหมือนต้องผ่านการทำงานตรงนี้ก่อน แล้วค่อยไปอ่านไฟล์ javascript ของการเขียนกราฟ แล้วค่อยส่งไปขึ้น canvas ของ html5 แต่หนูไม่มีความรู้ด้านนี้เลย ถ้าจะขอคำแนะนำเกี่ยวกับการส่งค่าได้ไหมคะ 

นี่คือตัวอย่างอื่นๆ ค่ะ 
http://www.rgraph.net/docs/xml-data.html
http://www.rgraph.net/docs/dynamic.html

ขอบคุณค่ะ :39:
10

555++

เธอไม่ยอมแตกขั้นตอนการทำงาน เพื่อให้ง่ายต่อการแก้ปัญหาเนาะ...

ตอนนี้ผมมองว่าปัญหาจริงๆ คือ เธอไม่รู้ว่าอะไรคือปัญหามากกว่า ซึ่งเป็นสิ่งที่ผมตอบไม่ได้เช่นกัน เพราะไม่ได้ลงมือทำด้วย

ถ้าติดปัญหาที่ onload และติดปัญหาที่ไม่สามารถใช้ framework อื่นใดได้ ก็กลับไปใช้ Javascript พื้นฐานสิครับ

window.onload=function(){
 // do something
};

ส่วนปัญหาเรื่อง canvas อาจเป็นเพราะ Browser ไม่สนับสนุนหรือเปล่าครับ ลองใช้ IE9 หรือ Firefox ดู

และถ้าต้องการใช้ Ajax ก็ลองอ่านบทความเรื่อง Ajax ดูครับ ซึ่งในความเป็นจริงถ้าคิดว่าการใช้ Framework มันยาก ก็อย่าไปมัวงมมันเลยครับ กลับไปใช้วิธีพื้นฐานของ Javascrpt ก้ได้

ส่วนเรื่องที่ script ต้องการไฟล์ xml ตัวอย่างก็มีไฟล์ xml มาให้ ให้ลองทดสอบการแสดงผล xml ตามตัวอย่างดู ซึ่งถ้าแสดงผลได้ สิ่งที่ต้องทำแค่เปลี่ยนจาก xml เป็น php และเขียน php เพื่อ echo เอาคำสั่งให้เหมือนกับที่ xml ตามตัวอย่างก็พอครับ
11

จริงค่ะ ที่จริงหนูไม่รู้ว่าอะไรคือปัญหา คือถ้าแปะกราฟโดดๆ ไม่มีการเอาข้อมูลมาเกี่ยวข้อง กราฟจะขึ้นให้เห็นค่ะ แล้วถ้าเอาข้อมูลที่ได้จากการหั่นแล้วทำการตัดสตริงอะไรต่ออะไรแล้วแปลงเป็น int เรียบร้อยแล้ว ส่งพารามิเตอร์มาที่ function ของตัวกราฟเลย กราฟก็ขึ้นเช่นกัน แต่พวกแท่งๆ แสดงผลข้อมูลมันไม่ยอมขึ้นอยู่ดี เหมือนว่ามันยังไม่ถูกเชื่อมให้ถูกใส่ข้อมูล ยังเป็นค่าแรกที่เป็น 0 อยู่ :39:

เดี๋ยวจะลองใช้ JS พื้นฐาน กับลองแบบ xml ดูค่ะ 

ขอบคุณค่ะ  :39:
12

มารายงานผลว่าทำได้แล้วค่ะ :28: :37:
13

อ้างจากคำตอบที่ #13มารายงานผลว่าทำได้แล้วค่ะ :28: :37:

ยินดีด้วยครับ (หลังจากผ่านไป 2 เดือน) :30:
14
^