Python Tutorial

JSON PHP


Une utilisation courante de JSON consiste à lire des données à partir d’un serveur Web et à afficher les données dans une page Web.

Ce chapitre vous apprendra comment échanger des données JSON entre le client et un serveur PHP.


Le fichier PHP

PHP a des fonctions intégrées pour gérer JSON.

Les objets en PHP peuvent être convertis en JSON en utilisant la fonction PHP
json_encode():

Fichier PHP


$monObj->nom = « Jean » ;
$monObj->age = 30 ;
$monObj->ville = « New York » ;

$monJSON = json_encode($monObj);

echo $monJSON ;
?>

Afficher le fichier PHP »

Le Javascript client

Voici un JavaScript sur le client, utilisant un appel AJAX pour demander le fichier PHP de l’exemple ci-dessus :

Exemple

Utilisez JSON.parse() pour convertir le résultat en objet JavaScript :

const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = fonction() {
const myObj = JSON.parse(this.responseText);
document.getElementById(« demo »).innerHTML = myObj.name;
}
xmlhttp.open(« GET », « demo_file.php »);
xmlhttp.send();

Essayez-le vous-même »



Tableau PHP

Les tableaux en PHP seront également convertis en JSON lors de l’utilisation de la fonction PHP
json_encode():

Fichier PHP


$myArr = array(« John », « Mary », « Peter », « Sally »);

$myJSON = json_encode($myArr);

echo $monJSON ;
?>

Afficher le fichier PHP »

Le Javascript client

Voici un JavaScript sur le client, utilisant un appel AJAX pour demander le fichier PHP à partir de l’exemple de tableau ci-dessus :

Exemple

Utilisez JSON.parse() pour convertir le résultat en un tableau JavaScript :

var xmlhttp = new XMLHttpRequest();
xmlhttp.onload = fonction() {
const myObj = JSON.parse(this.responseText);
document.getElementById(« démo »).innerHTML = monObj[2];
}
xmlhttp.open(« GET », « demo_file_array.php », true);
xmlhttp.send();

Essayez-le vous-même »


Base de données PHP

PHP est un langage de programmation côté serveur et peut être utilisé pour accéder à une base de données.

Imaginez que vous ayez une base de données sur votre serveur et que vous souhaitiez lui envoyer une requête du client où vous demandez les 10 premières lignes d’une table appelée « clients ».

Sur le client, créez un objet JSON qui décrit le nombre de lignes que vous souhaitez renvoyer.

Avant d’envoyer la requête au serveur, convertissez l’objet JSON en chaîne et envoyez-le en paramètre à l’url de la page PHP :

Exemple

Utilisez JSON.stringify() pour convertir l’objet JavaScript en JSON :

limite constante = {« limit »:10} ;
const dbParam = JSON.stringify(limite);
xmlhttp = new XMLHttpRequest();
xmlhttp.onload = fonction() {
document.getElementById(« demo »).innerHTML = this.responseText ;
}
xmlhttp.open(« GET », »json_demo_db.php?x= » + dbParam);
xmlhttp.send();

Essayez-le vous-même »

Exemple expliqué :

  • Définissez un objet contenant une propriété et une valeur « limite ».
  • Convertissez l’objet en une chaîne JSON.
  • Envoyez une requête au fichier PHP, avec la chaîne JSON en paramètre.
  • Attendez que la requête revienne avec le résultat (au format JSON)
  • Affichez le résultat reçu du fichier PHP.

Jetez un oeil au fichier PHP :

Fichier PHP


header(« Content-Type: application/json; charset=UTF-8 »);
$obj = json_decode($_GET[« x »]FAUX);

$conn = new mysqli(« myServer », « myUser », « myPassword », « Northwind »);
$stmt = $conn->prepare(« SELECT name FROM clients LIMIT ? »);
$stmt->bind_param(« s », $obj->limit);
$stmt->execute();
$résultat = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>

Fichier PHP expliqué :

  • Convertir la requête en objet, en utilisant la fonction PHP
    json_decode().
  • Accédez à la base de données et remplissez un tableau avec les données demandées.
  • Ajoutez le tableau à un objet et renvoyez l’objet au format JSON à l’aide de la json_encode() fonction.

Utiliser les données

Exemple

xmlhttp.onload = fonction() {
const myObj = JSON.parse(this.responseText);
laisser texte = «  » ;
for (let x in myObj) {
texte += monObj[x].nom + « 
 » ;
}
document.getElementById(« démo »).innerHTML = texte ;
}

Essayez-le vous-même »


Méthode PHP = POST

Lors de l’envoi de données au serveur, il est souvent préférable d’utiliser le protocole HTTP POST méthode.

Pour envoyer des requêtes AJAX à l’aide de POST méthode, spécifiez la méthode et l’en-tête correct.

Les données envoyées au serveur doivent maintenant être un argument de la send() méthode:

Exemple

const dbParam = JSON.stringify({« limit »:10});
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = fonction() {
const myObj = JSON.parse(this.responseText);
laissez texte = » » ;
for (let x in myObj) {
texte += monObj[x].nom + « 
 » ;
}
document.getElementById(« démo »).innerHTML = texte ;
}
xmlhttp.open(« POST », « json_demo_db_post.php »);

xmlhttp.setRequestHeader(« Content-type », « application/x-www-form-urlencoded »);
xmlhttp.send(« x= » + dbParam);

Essayez-le vous-même »

La seule différence dans le fichier PHP est la méthode d’obtention des données transférées.

Fichier PHP

Utilisez $_POST au lieu de $_GET :


header(« Content-Type: application/json; charset=UTF-8 »);
$obj = json_decode($_POST[« x »]FAUX);


$conn = new mysqli(« myServer », « myUser », « myPassword », « Northwind »);
$stmt = $conn->prepare(« SELECT name FROM clients LIMIT ? »);
$stmt->bind_param(« s », $obj->limit);
$stmt->execute();
$résultat = $stmt->get_result();
$outp = $result->fetch_all(MYSQLI_ASSOC);

echo json_encode($outp);
?>

#JSON #PHP

Articles similaires

Bouton retour en haut de la page