JSON PHP
- Προηγούμενη σελίδα JSON Διακομιστής
- Επόμενη σελίδα JSON HTML
Η κανονική χρήση του JSON είναι η ανάγνωση δεδομένων από τον διακομιστή του ιστότοπου και η εμφάνισή τους στην ιστοσελίδα.
Αυτό το κεφάλαιο σας εξηγεί πώς να ανταλλάσσετε δεδομένα JSON μεταξύ πελάτη και διακομιστή PHP.
PHP αρχείο
Το PHP παρέχει ενσωματωμένες συνάρτησεις για τη διαχείριση JSON.
Με τη χρήση των συνάρτησών του PHP json_encode()
Και οι αντικειμενικοί τύποι του PHP μπορούν να μετατραπούν σε JSON:
PHP αρχείο
<?php $myObj->name = "Bill Gates"; Το $myObj->age = 62; $myObj->city = "Seattle"; $myJSON = json_encode($myObj); echo $myJSON; ?>
JavaScript πελάτη
Αυτό είναι το JavaScript του πελάτη, το οποίο χρησιμοποιεί κλήσεις AJAX για να ζητήσει το αρχείο PHP του παραδείγματος:
παράδειγμα
χρήση JSON.parse()
Μετατροπή των αποτελεσμάτων σε αντικείμενο 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();
Λίστα PHP
Κατά τη χρήση της συνάρτησης json_encode()
στοιχειώσει, η λίστα του PHP θα μετατραπεί επίσης σε JSON:
PHP αρχείο
<?php $myArr = array("Bill Gates", "Steve Jobs", "Elon Musk"); $myJSON = json_encode($myArr); echo $myJSON; ?>
JavaScript πελάτη
Αυτό είναι το JavaScript του πελάτη, το οποίο χρησιμοποιεί κλήσεις AJAX για να ζητήσει το αρχείο PHP του παραδείγματος:
παράδειγμα
Χρησιμοποιήστε JSON.parse()
Μετατροπή των αποτελεσμάτων σε μαζικό αριθμητικό του 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();
Βάση δεδομένων PHP
Το PHP είναι γλώσσα προγραμματισμού για τον server, πρέπει να χρησιμοποιείται για λειτουργίες που μπορούν να εκτελεστούν μόνο από τον server, όπως η πρόσβαση στη βάση δεδομένων.
Παρατηρήστε ότι στον server υπάρχει μια βάση δεδομένων που περιέχει δεδομένα πελατών, προϊόντων και προμηθευτών.
Σε αυτό το σημείο, πρέπει να ζητήσετε από τον服务器 να αποκτήσετε τα πρώτα δέκα εγγραφές από την τάβλη "Πελάτες":
παράδειγμα
Χρησιμοποιήστε JSON.stringify()
Μετατροπή του αντικειμένου JavaScript σε 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();
Παράδειγμα εξήγησης:
- Ορισμός αντικειμένου που περιέχει τις ιδιότητες 'table' και 'limit'.
- Μετατρέψτε το αντικείμενο σε αλφαριθμητική αλυσίδα JSON.
- Αποστείλετε αίτημα στον αρχείο PHP, όπου το JSON είναι ο παράμετρος.
- Αναμονή μέχρι να επιστρέψει το αίτημα (ως JSON).
- Εμφανίστε τα αποτελέσματα που λαμβάνονται από το αρχείο PHP.
Ελέγξτε το αρχείο PHP
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); ?>
Ανάλυση αρχείου PHP:
- Μετατρέψτε το αίτημα σε αντικείμενο, χρησιμοποιώντας τη συνάρτηση PHP
json_decode()
. - Αναζητήστε βάση δεδομένων, γεμίστε τη λίστα με τα ζητούμενα δεδομένα.
- Προσθέστε τη λίστα στο αντικείμενο, χρησιμοποιώντας
json_encode()
Η συνάρτηση επιστρέφει το αντικείμενο ως JSON.
Παρακαλούμενη περιήγηση
Μετατρέψτε τα αποτελέσματα που λαμβάνονται από το αρχείο PHP σε αντικείμενο JavaScript, ή, όπως στο παράδειγμα, σε μια λίστα JavaScript:
παράδειγμα
χρήση JSON.parse()
Μετατρέψτε JSON σε αντικείμενο 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; }); }); ...
Μέθοδος PHP = POST
Συχνά είναι καλύτερο να χρησιμοποιείτε τη μέθοδο HTTP POST για να στείλετε δεδομένα στο server.
Για να χρησιμοποιήσετε τη μέθοδο POST για να στείλετε αιτήματα AJAX, πρέπει να καθορίσετε τη μέθοδο αυτή και το σωστό κεφαλίδι.
Τώρα τα δεδομένα που αποστέλλονται στο server πρέπει να είναι .send();
παράμετροι της μεθόδου:
παράδειγμα
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);
Η μοναδική διαφορά στα PHP αρχεία είναι ο τρόπος απόκτησης των μεταφερομένων δεδομένων.
PHP αρχείο
χρήση $_POST
όπου $_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); ?>
- Προηγούμενη σελίδα JSON Διακομιστής
- Επόμενη σελίδα JSON HTML