IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)

Vous �tes nouveau sur Developpez.com ? Cr�ez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et �tre connect� pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Cr�ez-en un en quelques instants, c'est enti�rement gratuit !

Si vous disposez d�j� d'un compte et qu'il est bien activ�, connectez-vous � l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oubli� ?
Cr�er un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Tutoriel AJAX : apprendre la production de donn�es au format JSON en PHP
Par Marc Autran

Le , par autran

0PARTAGES

Comme annonc� dans le billet pr�c�dant, montrons comment notre serveur PHP peut renvoyer des objets JSON.

1/ Le serveur web et base de donn�es
Pour ce faire le seul pr�-requis est de disposer d'un serveur Apache avec le module PHP et d'une base de donn�es. De nombreux h�bergeurs du Cloud en proposent. L'objet de ce billet n'�tant pas de faire de la pub pour les hosters, je vous laisse le choix de l�h�bergeur.
Afin que ce que je montre soit parfaitement reproductible pour le lecteur je m'affranchirai de la probl�matique d'h�bergement en utilisant un serveur que j'h�berge sur mon PC. J'ai opt� pour le serveur Apache + PHP + MySQL tout en un. Comme mon PC est sous linux, j'ai choisi XAMP. Mais quel que soit votre syst�me d�exploitation vous pourrez t�l�charger une version XAMP idoine.

2/ Le cahier des charges
Rappelons que notre client attend une liste d'outils sous la forme d'un tableau d'objets au format JSON.
Nous stockerons donc les outils dans une base de donn�es (MySQL). Le serveur PHP devra donc permettre d'extraire les donn�es de la base et les envoyer au client au format JSON. Il faudra changer une seule donn�e sur le serveur.
Pour tester notre serveur nous changerons dans le client xhr.open("GET", "data.json", true); par xhr.open("GET", "jsonfactory.php", true); jsonfactory.php �tant le fichier PHP qui nous restera � d�velopper dans ce tuto.

3/ La base de donn�es
L'utilitaire d'administration PhpMyAdmin permet de configurer la table outils et de la remplir ais�ment. Si vous g�rez � la main votre base de donn�e, voici le script de cr�ation de la table et de peuplement

Code sql : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- 
-- Création de la table `outils` 
– 
  
CREATE TABLE `outils` ( 
  `id` int(11) NOT NULL, 
  `nom` varchar(255) NOT NULL, 
  `description` varchar(255) NOT NULL, 
  `qte` int(11) NOT NULL, 
  `prix` int(11) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 
  
-- 
-- Contenu de la table `outils` 
-- 
  
INSERT INTO `outils` (`id`, `nom`, `description`, `qte`, `prix`) VALUES 
(1, 'marteau', 'pour enfoncer des clous', 5, 22), 
(2, 'tournevis', 'pour ouvrir le pot de peinture', 6, 30), 
(3, 'tenailles', 'pour arracher les dents', 8, 11), 
(4, 'pinces multiples', 'pour bricoler le dimanche', 22, 35), 
(5, 'cle de 12', 'pour reparer le tracteur', 2, 85);

Comme on le remarquera dans le script PHP cette table est chez moi localis�e dans la base user et j'ai cr�� un utilisateur user (mot de passe �user�) ayant l'autorisation de manipuler en lecture les donn�es de cette table.

4/ D�veloppement PHP
Ce sera en r�alit� tr�s simple car il suffit de :
  • Lire (via l'objet standard du langage PDO) toute les donn�es de la table outils
  • Mettre ces donn�es dans un tableaux d'objets
  • Encoder le tableau au format JSON
  • Envoyer la chaine JSON comme r�ponse au client

Voici le script de la page jsonfactory.php
Code php : S�lectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php 
  try { 
    $bdd = new PDO('mysql:host=localhost;dbname=user;charset=utf8', 'user', 'user'); 
  } 
  catch (Exception $e) { 
    die('Erreur : ' . $e->getMessage()); 
  } 
  $query = $bdd->query("Select * from outils"); 
  $outils = array(); 
  while ($outil = $query->fetch()) 
    array_push($outils, array("nom" => $outil["nom"], 
                              "desc" => $outil["description"], 
                              "qte" => $outil["qte"], 
                              "prix" => $outil["prix"])); 
  echo(json_encode($outils)); 
?>
5/ Conclusions
On a vu qu'il est ais� de produire des donn�es JSON au profit d'un client JavaScript � partir d'un serveur PHP. Mais je vous rassure, Java � C# - JavaScript sont des langages cot�s serveur qui permettent de produire du JSON aussi facilement.
JSON �tant le format utilis� pour 90% des Web Services (REST), on imagine bien que l'�tape suivante est la production de web services.
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.

Une erreur dans cette actualit� ? Signalez-nous-la !