Je planche depuis ce matin sur ce probl�me : sous Firefox (pas test� sous Op�ra mais sous IE �a marche) mon formulaire ne prend pas en compte la valeur g�n�r�e par Ajax dans l'envoi :-(
Mon formulaire marche tr�s bien puisque IE r�cup�re bien tout en $_POST, mais pas moyen de travailler avec la valeur g�n�r�e par Ajax, et c'est bien s�r d'elle dont j'ai besoin.
En fait je fais saisir un code postal et g�n�re une liste d�roulante des villes correspondante via Ajax. Dans ce select je r�cup�re la valeur INSEE de la ville selected, mais �a ne passe pas sous Firefox apr�s le submit !
Ma base de donn�es comporte :
- code postal
- code INSEE
- nom de la commune
- latitude
- longitude
Voici le code de mon "ajax.js" (appel� dans le <input> du code postal par un "onChange=go_ville()", lui-m�me dans un div dont l'id est b�tement "ajax") :
Et voici le code de ma page "commune.php" appel�e par l'Ajax, dans lequel on trouve la requ�te et l'affichage de la liste d�roulante :Code:
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 var xhr = null; function getXhr(){ if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr; } function go_ville(){ var xhr = getXhr(); xhr.onreadystatechange = function(){ if(xhr.readyState == 4 && xhr.status == 200){ document.getElementById('ajax').innerHTML = xhr.responseText; } } xhr.open("POST","communes.php",true); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); idcp = document.getElementById('cp').value; xhr.send("cp="+idcp); }
HELP !!!!Code:
1
2
3
4
5
6
7
8
9
10 <? echo "<select name=\"ville\" class=\"champ\" style=\"width:145px;color:black\">\n"; if ($_POST[cp]){ include("connex.php"); $res=mysql_query("SELECT insee,commune FROM communes WHERE code='$_POST[cp]' ORDER BY commune"); while($row=mysql_fetch_row($res)) { echo "<option value=\"$row[0]\">".stripslashes(utf8_encode($row[1]))."</option>\n"; }} echo "</select>\n"; ?>
NB : mon site en cours de d�veloppement se trouve � l'adresse www.lokalokaz.fr