Bonjour,
Suite � un premier message sans r�ponse, je me permets de relancer le sujet ...
A partir d'une page HTML, je veux commander l'importation de donn�es d'un fichier XML vers ma base de donn�es MySQL.
Pour cela ma page HTML contient un formulaire et 2 listes d�roulantes.
Sur le submit, j'ex�cute mon code javascript. Tout se passe correctement jusqu'au moment ou je veux effectuer ma fonction une fois la r�ponse du serveur re�u.
En effet, j'ai l'erreur :
Avec un alert sur le readystate, on ex�cute la s�quence 124 et non 1234 comme l'annoncent tous les tutoriels ... Pourquoi ?Erreur : [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://localhost/include/scripts_js/import.js :: anonymous :: line 42" data: no]
Fichier source : http://localhost/include/scripts_js/import.js
Ligne : 42
Apr�s recherches sur notre ami google, j'ai lu que si l'on enl�ve les balises <form> le message d'erreur disparait ... ce qui est VRAI !
Cependant dans mon code JS je dosi r�cup�rer les valeurs (le texte) de mes SELECT s�lectionn�s. COmment faire sans els balises <form> ?
Comment rsoudre ce probl�me d'�tat sur le statut ?
Voci mon code JS :
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 function gophp() { //On définit l'objet qui va intérroger le serveur var xhr = getXhr(); // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() { // On ne fait quelque chose que si on a tout reçu et que le serveur est ok alert(xhr.readyState); if(xhr.readyState == 4 && xhr.status == 200) { //Affichage de la liste dans la zon de liste var docXML= xhr.responseText; alert(docXML); //On écrit maintenant les résultats dans les champs textes définis. var items = docXML.getElementsByTagName("mouvement"); alert(items); for (i=0;i<items.length;i++) { alert("item : "+i); var chaine=""; var temp = docXML.getElementsByTagName('date'); chaine = temp[0].firstChild.nodeValue; temp = docXML.getElementsByTagName('code'); chaine = chaine+" ; "+temp[0].firstChild.nodeValue; temp = docXML.getElementsByTagName('prix'); chaine = chaine+" ; "+temp[0].firstChild.nodeValue; document.writeln(chaine); } } } // Ici on va voir comment faire du post var fichier = "/include/scripts_php_ajax/importer_csv.php"; xhr.open("POST",fichier,true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); //On récupère le critère de recherche. code = document.form.s_veh.options[document.form.s_veh.options.selectedIndex].text; tva = document.form.s_tva.options[document.form.s_tva.options.selectedIndex].text; //On envoie le type de véhicule choisi au ficier PHP pour la requete. var data = "code="+code+"&tva="+tva; xhr.send(data); }
puis mon code HTML :
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 <form name="form" enctype="multipart/form-data" method="post" action=""> <table width="560" border="0" align="center"> <tr> <th width="322" scope="row" align="left">Sélectionner un véhicule </th> <td width="228"><select name="s_veh"> <option>- -</option> <?php $requete = "SELECT code FROM vehicules ORDER BY code"; $res = mysql_query($requete); while ($row=mysql_fetch_array($res)) { echo "<option>$row[0]</option>"; } ?> </select></td> </tr> <tr> <th scope="row" align="left">Sélectionner un taux de TVA </th> <td><select name="s_tva"> <option>- -</option> <?php $requete = "SELECT taux FROM tva ORDER BY taux"; $res = mysql_query($requete); while ($row=mysql_fetch_array($res)) { $tva = $row[0]*100; echo "<option>$tva</option>"; } ?> </select></td> </tr> </table></p> <p align="center"><input type="submit" name="importer" value="importer" onClick="VerifierFormulaire();"></p> </form>
Partager