JSON PHP
JSON-ning keng tarqalgan qo'llanilishi veb-serverdan ma'lumotlarni o'qish va ularni veb-sahifada ko'rsatishdir.
Ushbu bobda siz mijoz (client) va PHP serveri o'rtasida JSON ma'lumotlarini qanday almashishni o'rganasiz.
PHP fayli
PHP-da JSON bilan ishlash uchun bir nechta o'rnatilgan funksiyalar mavjud. PHP-dagi obyektlarni json_encode() funksiyasi yordamida JSON-ga aylantirish mumkin:
PHP fayli (demo_file.php)
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";
$myJSON = json_encode($myObj);
echo $myJSON;
?>Mijoz tomonidagi JavaScript
Quyida AJAX orqali yuqoridagi PHP faylini so'raydigan JavaScript kodi keltirilgan:
Misol
Natijani JavaScript obyektiga aylantirish uchun JSON.parse() dan foydalaning:
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()PHP massivi (Array)
PHP-dagi massivlar ham json_encode() funksiyasi yordamida JSON-ga aylantiriladi:
PHP fayli
<?php
$myArr = array("John", "Mary", "Peter", "Sally");
$myJSON = json_encode($myArr);
echo $myJSON;
?>Mijoz tomonidagi JavaScript
Natijani JavaScript massiviga aylantirish uchun JSON.parse() dan foydalaning:
var xmlhttp = new XMLHttpRequest()
xmlhttp.onload = function () {
const myObj = JSON.parse(this.responseText)
document.getElementById('demo').innerHTML = myObj[2]
}
xmlhttp.open('GET', 'demo_file_array.php', true)
xmlhttp.send()PHP va ma'lumotlar bazasi
PHP server tomonidagi til bo'lib, undan ma'lumotlar bazasiga kirish uchun foydalanish mumkin. Tasavvur qiling, serveringizda ma'lumotlar bazasi bor va siz mijozdan "customers" jadvalidagi dastlabki 10 ta qatorni so'ramoqchisiz.
- Mijoz tomonida qaytarilishi kerak bo'lgan qatorlar sonini ta'riflovchi JSON obyektini yarating.
- So'rovni yuborishdan oldin JSON obyektini matnga aylantiring va uni PHP sahifasining URL manziliga parametr sifatida yuboring:
Misol
const limit = { limit: 10 }
const dbParam = JSON.stringify(limit)
xmlhttp = new XMLHttpRequest()
xmlhttp.onload = function () {
document.getElementById('demo').innerHTML = this.responseText
}
xmlhttp.open('GET', 'json_demo_db.php?x=' + dbParam)
xmlhttp.send()Misol tushuntirishi:
- "limit" xususiyati va qiymatiga ega obyekt belgilanadi.
- Obyekt JSON matniga aylantiriladi.
- PHP fayliga JSON matni parametr sifatida yuboriladi.
- So'rov natija (JSON sifatida) bilan qaytguncha kutiladi.
- PHP faylidan olingan natija ko'rsatiladi.
PHP fayli tushuntirishi:
- So'rovni
json_decode()PHP funksiyasi yordamida obyektga aylantiring. - Ma'lumotlar bazasiga kiring va so'ralgan ma'lumotlar bilan massivni to'ldiring.
- Massivni obyektga qo'shing va
json_encode()funksiyasi yordamida obyektni JSON sifatida qaytaring.
Ma'lumotlardan foydalanish
Misol: Olingan ma'lumotlarni ko'rsatish
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
}PHP Metodi = POST
Serverga ma'lumot yuborganda ko'pincha HTTP POST metodidan foydalanish afzalroqdir. AJAX so'rovlarini POST metodi bilan yuborish uchun metodni va to'g'ri sarlavhani (header) ko'rsating.
Misol
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)PHP faylidagi yagona farq — uzatilgan ma'lumotlarni olish metodi bo'ladi ($_POST o'rniga $_GET).
