Création - Formulaire d'ajout à distance
Objectif : Une application WEB Web permettant de lister et de créer un nouveau client.
*Difficulté : ***
Préparation
...
Dupliquez le fichier lister_les_clients.php
de la section 3.3 vers un fichier nommé C-CRUD.php
à la racine de votre serveur WEBWeb.
L'ajout de ressource peut s'apparenter à une mise à jour à partir d'un élément vide.
Mais comment récupérer un XML formaté en tant que client vide ?
Dans le service web, il existe une méthode pour récupérer un XML vide, elle est accessible grâce à une URL formatée comme suit :
[http://maboutique.com/api/[Nom de la ressource]?schema=blank Note :
Note |
---|
Il est possible de remplacer la valeur du paramètre schema « blank » par « synopsis » afin de récupérer davantage d'informations sur les champs de la ressource. |
Comme nous l'avons vu dans la section 3.3 ("Lister les clients) ", il est possible de passer comme tableau de paramètre à "get", "resource" et "id", il est également possible de ne spécifier qu'une url de cette façon :
Code Block |
---|
$xml = $webService->get( array( 'url' => 'http://maboutique.com/api/customers?schema=blank' ) ); |
Ici, nous récuperons dans la variable XML l'intégralité d'un client vide.
Début du fichier XML récupéré : <prestashop>
<customer>
Code Block |
---|
<prestashop> <customer> <id_default_group/> |
...
etc... |
Nous pouvons ensuite grâce aux nom des champs que nous avons, créer un formulaire associé.
Récupération de l'ensemble des champs :
Code Block |
---|
$resources = $xml->children()->children(); |
Parcours de l'ensemble des champs et partie de la création dynamique des champs du formulaire dans un tableau : Wiki Markup
Code Block |
---|
|
...
foreach ( $resources as $key => $resource ) |
...
{ echo '<tr><th>' . $key . '</th><td>'; echo '<input type="text" name="' . $key . '" value=""/>'; echo '</td></tr>'; |
...
}
|
Une fois les données passées en POST, nous allons associé associer les données envoyé envoyées avec le fichier XML vierge , ; cette technique est la même que pour la mise à jour de données.
Code Block |
---|
foreach ( $resources as $nodeKey => $node ) |
...
{ $resources->$nodeKey = $_POST |
...
[ $nodeKey |
...
]; |
...
} |
...
|
...
L'appel au service web est quand à lui ressemblant à ce que nous avons pu voit précédemment :
|
...
|
$opt = array( 'resource' => 'customers' );
$opt\[ 'xml' \ ] = $xml->asXML();
$xml = $webService->add( $opt );
\\
\\
\\
Réalisez maintenant un script qui permet
Réalisez maintenant un script qui permet d'ajouter un client, pensez que certains champs sont obligatoires, il ne faut pas client. Pensez que certains champs sont obligatoires, il ne faut pas l'oublier. \\
Si vous rencontrez des difficultés, regardez le code de "3-Create.php
".
\\
\\