JSON و PHP (JSON PHP)
اینجا یاد می گیریم چطور «JSON» و «PHP» باهم حرف بزنند. JSON فقط متن است. بنابراین، سمت کلاینت اول متن می رسد. سپس با JSON.parse() تبدیل به شیء می شود. برای ارسال، شیء را با JSON.stringify() به JSON تبدیل کن.
فایل PHP و خروجی JSON
PHP با json_encode() شیء یا آرایه را JSON می کند. نمونه فایل ها را ببین:
Show PHP file • Show PHP file (array)
نکته: برای مقدمات سرور، این بخش را ببین: سرور JSON.
درخواست ساده AJAX به PHP
با XMLHttpRequest فایل PHP را می گیریم. سپس پاسخ JSON را پارس می کنیم.
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.name;
};
xmlhttp.open("GET", "demo_file.php");
xmlhttp.send();
نکته: تبدیل متن JSON به شیء با JSON Parse انجام می شود.
آرایه PHP به JSON
اگر PHP آرایه برگرداند، بعد از JSON.parse() یک آرایه جاوااسکریپت داری.
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myArr = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myArr[2];
};
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();
درخواست با پارامتر limit به پایگاه داده
پارامترها را شیء بساز. سپس با JSON.stringify() رشته کن و بفرست.
const limit = { "limit": 10 };
const dbParam = JSON.stringify(limit);
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
};
xmlhttp.open("GET", "json_demo_db.php?x=" + dbParam);
xmlhttp.send();
نکته: سمت PHP با json_decode() پارامتر x خوانده می شود. سپس خروجی با json_encode() برگردان می شود.
استفاده از داده دریافتی
فرض کن آرایه ای از شیءها برگشته. نام ها را لیست کن.
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
let text = "";
for (let x in myObj) {
text += myObj[x].name + "<br>";
}
document.getElementById("demo").innerHTML = text;
};
ارسال با روش POST
برای ارسال امن تر، از POST استفاده کن. هدر مناسب را تنظیم کن.
const dbParam = JSON.stringify({ "limit": 10 });
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
const myObj = JSON.parse(this.responseText);
let text = "";
for (let x in myObj) {
text += myObj[x].name + "<br>";
}
document.getElementById("demo").innerHTML = text;
};
xmlhttp.open("POST", "json_demo_db_post.php");
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);
هشدار: فیلدها را سمت سرور اعتبارسنجی کن. به ورودی ها اعتماد نکن.
گام های عملی
- شیء پارامتر را بساز.
- با
JSON.stringify()رشته کن. - با GET یا POST ارسال کن.
- پاسخ را با
JSON.parse()بخوان. - نتیجه را در صفحه نمایش بده.
جمع بندی سریع
- JSON و PHP با متن گفتگو می کنند.
- ارسال:
JSON.stringify()؛ دریافت:JSON.parse(). - GET ساده است؛ POST امن تر است.
- خروجی آرایه باشد، خروجی پارس هم آرایه است.
- بیشتر بخوان: JSON Stringify.