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 :
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
Avec un alert sur le readystate, on ex�cute la s�quence 124 et non 1234 comme l'annoncent tous les tutoriels ... Pourquoi ?

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&eacute;lectionner un v&eacute;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&eacute;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>