JSON PHP
Penggunaan umum JSON adalah untuk membaca data dari server web, dan menampilkan data di halaman web.
Bab ini akan mengajarkan Anda cara bertukar data JSON antara klien dan server PHP.
File PHP
PHP memiliki beberapa fungsi bawaan untuk menangani JSON.
Objek dalam PHP dapat diubah menjadi JSON dengan menggunakan fungsi PHP json_encode() :
file PHP
<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New
York";
$myJSON = json_encode($myObj);
echo $myJSON;
?>
JavaScript Klien
Berikut adalah JavaScript di klien, menggunakan panggilan AJAX untuk meminta file PHP dari contoh di atas:
Contoh
Gunakan JSON.parse() untuk mengonversi hasilnya menjadi objek JavaScript:
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();
Array PHP
Array di PHP juga akan diubah menjadi JSON saat menggunakan fungsi PHP json_encode() :
file PHP
<?php
$myArr = array("John", "Mary", "Peter", "Sally");
$myJSON = json_encode($myArr);
echo $myJSON;
?>
JavaScript Klien
Berikut adalah JavaScript pada klien, menggunakan panggilan AJAX untuk meminta file PHP dari contoh array di atas:
Contoh
Gunakan JSON.parse() untuk mengonversi hasilnya menjadi larik JavaScript:
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();
Basis Data PHP
PHP adalah bahasa pemrograman sisi server, dan dapat digunakan untuk mengakses database.
Bayangkan Anda memiliki database di server Anda, dan Anda ingin mengirim permintaan ke sana dari klien tempat Anda meminta 10 baris pertama dalam tabel yang disebut "pelanggan".
Di klien, buat objek JSON yang menjelaskan jumlah baris yang ingin Anda kembalikan.
Sebelum Anda mengirim permintaan ke server, ubah objek JSON menjadi string dan kirimkan sebagai parameter ke url halaman PHP:
Contoh
Gunakan JSON.stringify() untuk mengonversi objek JavaScript menjadi JSON:
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();
Contoh menjelaskan:
- Tentukan objek yang berisi properti dan nilai "batas".
- Ubah objek menjadi string JSON.
- Kirim permintaan ke file PHP, dengan string JSON sebagai parameter.
- Tunggu hingga permintaan kembali dengan hasil (sebagai JSON)
- Menampilkan hasil yang diterima dari file PHP.
Lihatlah file PHP:
file PHP
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =
json_decode($_GET["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s", $obj->limit);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>
File PHP menjelaskan:
- Ubah permintaan menjadi objek, menggunakan fungsi PHP json_decode() .
- Akses database, dan isi array dengan data yang diminta.
- Tambahkan array ke objek, dan kembalikan objek sebagai JSON menggunakan fungsi json_encode() .
Gunakan Data
Contoh
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;
}
Metode PHP = POST
Saat mengirim data ke server, seringkali yang terbaik adalah menggunakan POST
metode HTTP.
Untuk mengirim permintaan AJAX menggunakan POST
metode, tentukan metode, dan header yang benar.
Data yang dikirim ke server sekarang harus berupa argumen ke send()
metode:
Contoh
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);
Satu-satunya perbedaan dalam file PHP adalah metode untuk mendapatkan data yang ditransfer.
file PHP
Gunakan $_POST alih-alih $_GET:
<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =
json_decode($_POST["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$stmt = $conn->prepare("SELECT name FROM customers LIMIT ?");
$stmt->bind_param("s",
$obj->limit);
$stmt->execute();
$result = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>