หลายๆ คนที่เพิ่งศึกษาเรื่อง Ajax (Asynchronous Javascript and XML) มักจะติดปัญหาเรื่องการส่งค่าจาก Server-Side ที่มีหลายข้อมูลกลับคืนไปให้ Javascript ได้อย่างไร
ในความเป็นจริงแล้วทุกภาษาที่รองรับการเขียนโปรแกรมแบบ OOP (Object-Oriented Programming) สามารถใช้งาน JSON ได้ทั้งหมด
ซึ่งใน PHP เองก็จะมีกลุ่มของคำสั่งชุดหนึ่งชื่อว่า JSON (JavaScript Object Notation) ใช้ในการแลกเปลี่ยนข้อมูลกับ Javascript ในรูปแบบของวัตถุ Object ซึ่งความสามารถนี้ถูกเพิ่มเข้ามาใน PHP 5.2.0
คำสั่งที่สำคัญมี 2 คำสั่งคือ
- json_encode ใช้ในการจัดรูปแบบตัวแปรของ PHP เป็น JSON String เพื่อใช้ในการส่งไปยัง Javascript
- json_decode ใช้ในการจัดรูปแบบข้อมูล JSON String ที่ได้รับมาเป็นตัวแปรของ PHP
การใช้งาน json_encode ก็ง่ายๆ ครับ
PHP
<?
$myvar =
array("Apple",
"Orange", 23,
false);
?>
ซึ่งจะได้ผลเป็น
TEXT
["Apple", "Orange", "23", "false"]
เวลาเอามาใช้งานใน Javascript ก็เพียง
JAVASCRIPT
var data = eval('(["Apple", "Orange", "23", "false"])');
เราก็สามารถเรียกใช้ตัวแปร data ในรูปแบบของ array ได้แล้ว
หรือแม้แต่ associative array (ใน PHP เรียกว่า associative array ส่วนใน Javascript จะเรียกว่า hash/object) ก็สามารถทำได้เช่น
PHP
<?
$myvar =
array("a"=
>"Apple",
"b"=
>"Orange",
"c"=
>23,
"d"=
>false
);
?>
ซึ่งจะได้ผลเป็น
TEXT
{"a":"Apple", "b":"Orange", "c":23, "d":false}
ส่วนการใช้งาน json_decode ก็กลับกันเช่น
PHP
<?
$myvar =
json_decode('["Apple", "Orange", "23", "false"]');
//หรือ
$myvar =
json_decode('{"a":"Apple", "b":"Orange", "c":"23", "d":"false"}');
?>
การใฃ้งาน JSON ทำให้การสื่อสารของ AJAX Application ของเราสามารถทำได้ง่ายและรวดเร็วมากยิ่งขึ้น
เขียนเมื่อ 2009.07.07 โดย
Sheroku