PHP JSON

Penggunaan biasa JSON adalah untuk membaca data dari server web dan menampilkan data tersebut di halaman web.

Di bab ini, kami akan membahas bagaimana menggantikan data JSON antara klien dan server PHP.

Berkas PHP

PHP menyediakan fungsi bawaan untuk mengelola JSON.

Dengan menggunakan fungsi PHP json_encode()Objek PHP dapat diubah menjadi JSON:

Berkas PHP

<?php
$myObj->nama = "Bill Gates";
$myObj->usia = 62;
$myObj->city = "Seattle";
$myJSON = json_encode($myObj);
echo $myJSON;
?>

Tampilkan berkas PHP

JavaScript klien

Ini adalah JavaScript klien di server, yang menggunakan panggilan AJAX untuk meminta berkas PHP seperti di contoh sebelumnya:

Contoh

gunakan JSON.parse() Konversi hasil ke objek JavaScript:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         document.getElementById("demo").innerHTML = myObj.name;
     });
});
xmlhttp.open("GET", "demo_file.php", true);
xmlhttp.send();

Coba Sendiri

Array PHP

Pada penggunaan fungsi PHP json_encode() Pada saat ini, array di PHP juga akan diubah menjadi JSON:

Berkas PHP

<?php
$myArr = array("Bill Gates", "Steve Jobs", "Elon Musk");
$myJSON = json_encode($myArr);
echo $myJSON;
?>

Tampilkan berkas PHP

JavaScript klien

Ini adalah JavaScript klien di server, yang menggunakan panggilan AJAX untuk meminta berkas PHP seperti di contoh sebelumnya:

Contoh

Gunakan JSON.parse() Konversi hasil ke array JavaScript:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()  {
    if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         document.getElementById("demo").innerHTML = myObj[2];
     });
});
xmlhttp.open("GET", "demo_file_array.php", true);
xmlhttp.send();

Coba Sendiri

Database PHP

PHP adalah bahasa pemrograman server-side, yang harus digunakan untuk operasi yang hanya dapat dijalankan oleh server, seperti akses ke database.

Dengarkan, ada database di server yang berisi data pelanggan, produk, dan pemasok.

Pada saat ini, Anda perlu meminta layanan server untuk mendapatkan sepuluh record pertama dalam tabel "customer":

Contoh

Gunakan JSON.stringify() Konversi objek JavaScript ke JSON:

obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
     if (this.readyState == 4 && this.status == 200) {
        document.getElementById("demo").innerHTML = this.responseText;
    });
});
xmlhttp.open("GET", "demo_json_db.php?x=" + dbParam, true);
xmlhttp.send();

Coba Sendiri

Contoh penjelasan:

  • Definisi objek yang mengandung atribut table dan limit.
  • Konversi objek ini ke string JSON.
  • Kirim permintaan ke berkas PHP ini, dengan JSON sebagai parameter.
  • Tunggu hingga permintaan mengembalikan hasil (sebagai JSON).
  • Tampilkan hasil yang diterima dari berkas PHP.

Lihat berkas PHP

Berkas PHP

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =  json_decode($_GET["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>

Keterangan Berkas PHP:

  • Konversi permintaan ke objek, menggunakan fungsi PHP json_decode().
  • Akses database, mengisi array dengan data yang diminta.
  • Tambahkan array ke objek, menggunakan json_encode() Fungsi ini mengembalikan objek dengan JSON.

Mengelilingi Hasil

Konversi hasil yang diterima dari berkas PHP ke objek JavaScript, atau dalam kasus ini, array JavaScript:

Contoh

gunakan JSON.parse() Konversi JSON ke objek JavaScript:

...
xmlhttp.onreadystatechange = function() {
     if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         for (x in myObj) {
             txt += myObj[x].name + "<br>";
        });
         document.getElementById("demo").innerHTML = txt;
    });
});
 ...

Coba Sendiri

Metode PHP = POST

Dalam mengirimkan data ke server, biasanya yang paling baik adalah menggunakan metode HTTP POST.

Untuk menggunakan metode POST untuk mengirim permintaan AJAX, tentukan metode ini dan header yang benar.

Data yang dikirim ke server sekarang harus .send(); Parameter Metode:

Contoh

obj = { "table":"customers", "limit":10 };
dbParam = JSON.stringify(obj);
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
     if (this.readyState == 4 && this.status == 200) {
         myObj = JSON.parse(this.responseText);
         for (x in myObj) {
             txt += myObj[x].name + "<br>";
        });
         document.getElementById("demo").innerHTML = txt;
    });
});
xmlhttp.open("POST", "demo_json_db.php", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("x=" + dbParam);

Coba Sendiri

Perbedaan tunggal dalam berkas PHP adalah cara mendapatkan data yang dikirimkan.

Berkas PHP

gunakan $_POST dalam hal ini $_GET:

<?php
header("Content-Type: application/json; charset=UTF-8");
$obj =  json_decode($_POST["x"], false);
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit);
$outp = array();
$outp = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($outp);
?>