Lire un fichier XML
Bonjour,
Dans mon projet Pluxml, je dispose d’une Page Statique qui contient un code HTML pour afficher un formulaire (permettant aux utilisateurs de s’inscrire dans notre association). Celui-ci est contrôlé avant envoi par une fonction JavaScript afin de vérifier que les saisies de l’utilisateur sont cohérentes.
Dans mon formulaire, je fais appel à du PHP pour lire un fichier XML perso de stockage de données. Les informations nécessaires sont bien retranscrites.
Voici un exemple d’un morceau de code que j’utilise :
Par contre, j’aurais besoin de faire le même chargement XML lors de mon contrôle Javascript afin de vérifier des données avant envoi du formulaire mais je n’y parviens pas.
Voici, suite à toutes mes recherches sur le sujet, le code que j’ai ajouté dans ma fonction javascript (ce code fonctionne en test simple html / javascript / xml en dehors de mon environnement pluxml, mais une fois ajouté dans ma page, il ne fonctionne pas – ma fonction Javascript se déroule jusque-là puis est interrompue) :
Y a-t-il une méthode spécifique pour utiliser cela avec pluxml ? ou sinon comment procéder pour lire mon fichier XML au moment de ma validation de formulaire ? je suis encore novice dans ce genre de développements et je n'ai peut-être pas les bons réflexes pour gérer HTML / JS / PHP...
Merci pour votre aide !
M.B
Dans mon projet Pluxml, je dispose d’une Page Statique qui contient un code HTML pour afficher un formulaire (permettant aux utilisateurs de s’inscrire dans notre association). Celui-ci est contrôlé avant envoi par une fonction JavaScript afin de vérifier que les saisies de l’utilisateur sont cohérentes.
Dans mon formulaire, je fais appel à du PHP pour lire un fichier XML perso de stockage de données. Les informations nécessaires sont bien retranscrites.
Voici un exemple d’un morceau de code que j’utilise :
[== PHP ==]
<?php
$inscriptions= simplexml_load_file('data/stockage_inscriptions.xml');
Echo $inscriptions->cours[0]->nb_places_restantes.'places’ ;?>
Par contre, j’aurais besoin de faire le même chargement XML lors de mon contrôle Javascript afin de vérifier des données avant envoi du formulaire mais je n’y parviens pas.
Voici, suite à toutes mes recherches sur le sujet, le code que j’ai ajouté dans ma fonction javascript (ce code fonctionne en test simple html / javascript / xml en dehors de mon environnement pluxml, mais une fois ajouté dans ma page, il ne fonctionne pas – ma fonction Javascript se déroule jusque-là puis est interrompue) :
[== JavaScript ==]
var Document;
var nb_places = 0;
Document = new ActiveXObject("Microsoft.XMLDOM");
Document.async = "false";
if(Document.load("data/stockage_inscriptions.xml")){
nb_places = Document.documentElement.childNodes(0).childNodes(2).text;
alert(nb_places);
}
Y a-t-il une méthode spécifique pour utiliser cela avec pluxml ? ou sinon comment procéder pour lire mon fichier XML au moment de ma validation de formulaire ? je suis encore novice dans ce genre de développements et je n'ai peut-être pas les bons réflexes pour gérer HTML / JS / PHP...
Merci pour votre aide !
M.B
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Et PHP le manipule très bien et plus simplement que cet antique format XML.
Pour transmettre les données de PHP vers Javascript le plus simple est de mettre le contenu dans l'attribut data d'une balise HTML
Documentation pour PHP
Documentation pour Javascript
De plus le format JSON est beaucoup moins verbeux que le format XML
Et le contenu d'un fichier JSON s'affiche très bien dans un navigateur via un plugin.
Si tu as besoin d'un coup de pouce dans ce sens, n'hésite pas à demander.
Mais si tu préfères rester à XML, alors bon courage.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Merci pour ta réponse !
Je ne connaissais pas JSON (juste de nom). Je vais donc tester cela dès ce soir à l'aide de tes docs pour voir si je réussi à faire ce que je souhaite.
bonne journée,
M.B
J'ai testé le JSON. J'en arrive au même point qu'avec XML : ma partie sur affichage PHP fonctionne bien par contre ma partie récupération des données avec Javascript ne fonctionne pas...
Voici des extraits du code :
Fichier JSON :
Extrait de Fonction Javascript :
J'ai mon premier affichage "Controle json" mais pas le second sur "fichier ok". J'en déduit donc un souci au moment du chargement du fichier...
Merci pour ton aide!
M.B
https://developer.mozilla.org/fr/docs/Web/API/XMLHttpRequest
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Le contrôle du formulaire se fait et mon message "alert" s'affiche correctement (il a juste l'air de s'afficher deux fois, alors je dois continuer à faire des tests plus pousser pour vérifier cela....).
Par contre, une autre question, cette fois pour PHP...
Je lis correctement mon fichier JSON, mais je souhaiterais pouvoir le mettre à jour (toujours par le biais du formulaire) et je n'y parviens pas.
Je fais des opérations sur le contenu du fichier JSON (récupération d'une donnée, soustraction d'une valeur en fonction des saisies dans le formulaire, puis renvoi de la donnée -- j'ai fait des affichages pour véirifer la cohérence de mes données et tout est ok) mais à la fin le fichier ne semble pas s'enregistrer.
Voici l'extrait du code utilisé :
Est ce qu'il manquerait quelque chose pour la bonne mise à jour de mon fichier JSON ?
Merci !
Il vaut mieux le stocker dans une variable.
Attention que "data" est un paramètre de ton installation PluXml. (valeur par défaut)
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Par contre j'ai toujours des difficultés avec la partie Javascript...
Voila ou j'en suis :
Mes soucis et incompréhensions :
- Il garde en mémoire des valeurs tant que je ne vide pas le cache (donc la valeur testée nb_places_restantes n'est pas la bonne --> toujours à 0)...
- La fonction (req.onreadystatechange) semble s’exécuter deux fois de suite (j'obtiens 2 fois mon alert "erreur")
- La soumission du formulaire n'est pas bloquée par mon "return false" (mon formulaire réussi à se valider).
D'avance merci pour tes conseils !
Je continue à chercher pour faire fonctionner mon contrôle JSON mais malheureusement cela ne fonctionne toujours pas...
Voici mon code actuel :
A priori les comportements semblent différents d'un navigateur à l'autre (IE et Chrome, la fonction open de xmlhttp est refusée donc mon contrôle ne se fait pas - par contre sous Firefox, cela semble fonctionner !).
Merci de votre aide !
M.B.
Voir le fichier studio-danses-php pour la page statique à cette adresse :
https://gist.github.com/bazooka07/6f6f103bb7a8bae3145a6d7b20eb909f#file-studio-danses-php
Et voir le fichier inscriptions.json pour la liste des inscrit-e-s à chaque danse.
https://gist.github.com/bazooka07/6f6f103bb7a8bae3145a6d7b20eb909f#file-inscriptions-json
S'il n'existe pas, il se crée tout seul.
La liste des danses avec places, titre et cotisation est à régler dans le tableau $inscriptions
dans la constante INSCRIPTIONS_FILENAME, $this correspond à $plxShow.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2