[Pantip3G] Javascript ajax call error !!?

วันนี้จะว่ากันถึงเรื่องตกม้าตายเรื่องหนึ่งในการทำงานของผมตอนที่เขียนโค้ด Pantip3G โดยมีปัญหาด้าน Ajax เรียกหน้า PHP แล้วจะรับค่าคืนมาเป็น JSON ซึ่งผมก็เขียนแบบง่ายโดยใช้ jQuery function $.post ซึ่งมันก็ง่ายๆไม่มีอะไรประเด็นคือไม่ได้ค่าอะไรกลับ … ลองจับ bug เองแล้วตอนแรกเข้าใจว่าอาจจะส่งค่า type ผิดเพราะถ้าเรากำหนดเป็น JSON แต่ว่าถ้าเราส่งกลับมาเป็น String มันจะไม่เห็นซึ่งอันนี้เป็นบทเรียนมาครั้งหนึ่งแล้ว :( โอเค … เช็คแล้วไม่เจอก็เลยไปลอง debug อีกแบบคือไป debug ที่หน้า PHP ว่ามันเกิดอะไรขึ้น ค่าที่ส่งกลับมานั้นเป็น JSON หรือไม่ หรือว่ารูปแบบที่จัดนั้นไม่ถูกต้องก็ลองไปปิดทีละบรรทัดดู ก็ปรากฎว่ามันรันได้ถ้าปิดทีละบรรทัด แต่ให้มันเป็น array ทั้งชุดแล้วส่งกลับมาเป็น JSON นั้นทำไม่ได้ เฮ้อ … ปวดกะบาล ทำไมฟ่ะ !!?

ก็มีอีกกรณีคือผมใช้ function foreach ข้อมูลแล้วเก็บใส่ array ทีเดียวแล้ว echo JSON ออกมา ลองให้มันวนรอบเดียวแล้ว print_r ออกมาปรากฎว่า … ได้โว้ย ! อ้าวแล้วทำไมให้มันวนทุกรอบไม่ได้ว่ะ !!? คิดไม่ออกเลยไป search หาคำตอบจากอากู๋ ว่ามันเกิดอะไรขึ้น สรุปได้ว่า ผมใช้ค่าแปรเกิน limit บรรทัดของมันเพราะว่าผมรัน 700 แถวที่เป็น JSON 1 แถวของผมมี array มากมายอีกด้วยจึงกินไปอีกหลายบรรทัด เช่น

[php]
{ ‘_id’ : 1 , name : ‘tong’ , ….  , status : 1 }
,{ ‘_id’ : 2 , name : ‘tith’ , ….  , status : 1 }
ซึ่งละว่ามันเยอะมากต่อ 1 แถวข้อมูล
[/php]

จึงไม่ return อะไรออกมาเลยเพราะว่ามันเกิน limit ก็เป็นสิ่งที่ต้องจำไว้แต่จริงๆคิดว่ามันน่าจะปรับได้ว่าให้เท่าไรอย่างไร สำหรับข้อมูลที่เยอะๆ
ไว้โอกาสหน้าจะมาเล่าให้ฟังน้า

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

Loading

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Message us

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ปฎิเสธทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้ที่จำเป็น

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

บันทึก