[PHP] json_encode แล้ว Javascript จะเข้าถึงตัวแปรได้ยังไง


อันนี้เป็นการแก้ปัญหาเล็ก ๆ น้อย ๆ ครับ เคนไปเจอมา แล้วก็งม ๆ อยู่พักนึงว่าทำไมมันเข้าถึงตัวแปรไม่ได้นะ?

ลำดับเหตุการณ์คือ

ส่ง Ajax ไป ทำบางอย่างแล้ว Return ตัวแปรแบบ json กลับมาด้วยการใช้คำสั่ง json_encode

[PHP]

$data = array( 'id' => 1, 'name' => 'kanexkane' );

//return data with json format
echo json_encode( $data );

จากนั้น Return กลับมาใส่ตัวแปร data แล้วไม่สามารถ access ด้วย data.id หรือ data.name ได้

วิธีแก้ปัญหา

โคตรง่ายครับ ก่อนจะสั่ง data.id เพื่อเข้าถึงค่าของตัวแปร ให้ทำการ JSON.parse() มันก่อน ก็จะออกมาเป็นแบบนี้

[Javascript]

data = JSON.parse(data);

// ลอง consold.log ดู
console.log(data.id);

เท่านี้จากนั้นก็จะเรียกค่าจากในตัวแปรที่ส่งกลับมาได้ละ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *