Bonjour à tous,
Alors voila je suis en train de réaliser une application web, mais n'étant pas expert dans le domaine et surtout débutant, je demande votre aide.
Donc pour les technologies qui seront utilisés pour cette application, il y aura :
- PHP du coté du serveur (j'y ai déjà quelques connaissances)
- MySQL pour la sauvegarde des données
- AJAX pour la communication entre le client et le serveur (j'y ai également quelques connaissances sans être très avancé)
- XML pour la transmission des données (c'est surtout la où j'ai des problêmes)
- XUL pour l'interface utilisateur
Donc pour l'instant j'ai un problême au niveau de la transmission des données entre le serveur et le client. Je génère donc un fichier XML dynamiquement grâce à simpleXML que je renvoit au client avec AJAX. Je le traite ensuite avec Javascript mais c'est la que ca ne marche pas. Il me dit que xhr.responseXML est 'null'.
Voila les codes sources :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23coté serveur / PHP: $reponse = mysql_query("SELECT * FROM acheteur ORDER BY numAcheteur"); $xml = '<?xml version="1.0" encoding="UTF-8" ?>'; $xml .= '<vente>'; while ($donnee = mysql_fetch_array($reponse)) { $xml .= '<acheteur>'; $xml .= "<numAcheteur>" . $donnee['numAcheteur'] . "</numAcheteur>"; $xml .= "<nom>" . $donnee['nom'] . "</nom>"; $xml .= "<prenom>" . $donnee['prenom'] . "</prenom>"; $xml .= "<adresse>" . $donnee['adresse'] . "</adresse>"; $xml .= "<codePostal>" . $donnee['codePostal'] . "</codePostal>"; $xml .= "<ville>" . $donnee['ville'] . "</ville>"; $xml .= "<facture>" . $donnee['facture'] . "</facture>"; $xml .= '</acheteur>'; } $xml .= '</vente>'; header("Content-type: application/xml"); echo $xml;
Comme pour l'instant, c'est la transmission qui me pose problème, je n'ai pas encore coder la partie qui affichera ce tableau dans l'interface utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 coté client / AJAX : var xhr = null; function afficherAcheteur() { if (xhr && xhr.readyState != 0) { xhr.abort(); } xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) { var tableau = xml2table(xhr.responseXML); } }; xhr.open("POST", "fichier/page/acheteur.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("action=afficher"); } function xml2table(xml) { var i =0; var facture = ''; var table = ''; table += '<html:table id="tableauAcheteur">'; table += '<html:thead id="headTableuAcheteur">'; table += '<html:tr id="ligneHeadTableauAcheteur">'; table += '<html:td id="numAcheteurHeadTableauAcheteur">Numéro de l\'acheteur</html:td>'; table += '<html:td id="nomHeadTableauAcheteur">Nom</html:td>'; table += '<html:td id="prenomHeadTableauAcheteur">Prénom</html:td>'; table += '<html:td id="adresseHeadTableauAcheteur">Adresse</html:td>'; table += '<html:td id="codePostalHeadTableauAcheteur">Code postal</html:td>'; table += '<html:td id="villeHeadTableauAcheteur">Ville</html:td>'; table += '<html:td id=factureHeadTableauAcheteur">Facture</html:td>'; table += '</html:tr>'; table += '</html:thead>'; table += '<html:tbody id="bodyTableauAcheteur>'; while (numAcheteurs[i] != undefined) { (xml.selectNodes("/vente/acheteur[" + i + "]/nom") == 0) ? facture = 'non' : facture = 'oui'; table += '<html:tr id="ligneBodyTableauAcheteur">'; table += '<html:td id="numAcheteurBodyTableauAcheteur>' + xml.selectNodes("/vente/acheteur[" + i + "]/numAcheteur") + '</html:td>'; table += '<html:td id="nomBodyTableauAcheteur">' + xml.selectNodes("/vente/acheteur[" + i + "]/nom") + '</html:td>'; table += '<html:td id="prenomBodyTableauAcheteur">' + xml.selectNodes("/vente/acheteur[" + i + "]/prenom") + '</html:td>'; table += '<html:td id="adresseBodyTableauAcheteur">' + xml.selectNodes("/vente/acheteur[" + i + "]/adresse") + '</html:td>'; table += '<html:td id="codePostalBodyTableauAcheteur">' + xml.selectNodes("/vente/acheteur[" + i + "]/codePostal") + '</html:td>'; table += '<html:td id="villeBodyTableauAcheteur">' + xml.selectNodes("/vente/acheteur[" + i + "]/ville") + '</html:td>'; table += '<html:td id="factureBodyTableauAcheteur">' + facture + '</html:td>'; table += '</html:tr>'; } table += '</html:tbody>'; table += '</html:table>'; return table; }
PS: l'application ne tournera que sous Firefox, c'est pour cela qu'il n'y a que l'instanciation de l'objet XMLHttpRequest.
EDIT: j'ai réécrit le PHP ca semblerait que ca marche un peu mieux car maintenant si j'écrit ce que produit le PHP dans un fichier texte, il y a bien du XML
Partager