Aller au contenu

Accéder à la valeur d'un <select> en ajax, transmis en POST


Anonymus

Sujets conseillés

Bonjour,

J'ai d'un coté une liste dynamique de régions. Lorsque l'on sélectionne une région, une autre liste des villes de la région apparait en "select/option".

Lorsque je valide le formulaire, la première valeur (les régions) est bien transmise, mais pas la seconde.

J'ai donc la page principale, avec le code javascript :

<script type="text/javascript">
function getScriptPage(div_id,content_id,content_id2) {
subject_id = div_id;
content = document.getElementById(content_id).value;
http.open("GET", "select.province.recherche.php?content=" + escape(content) + "&content2="+escape(content_id2), true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}
</script>

Et plus bas l'appel aux régions/villes :

	<div class="output-div-container">
<div id="output_div">
<?
$q = "select * from province ";
$r = mysql_query($q);

echo"Province : <select name=province id=text_content2 onload=\"SetFocus();\">";
echo"<option value='-1'>Choisissez une province</option>";
while ($row = mysql_fetch_array($r))
echo"<option onmousedown=\"getScriptPage('output_div2','text_content2','machin')\" value='".$row['id']."'>".$row['codenom']."</option>";
echo"</select>";
?>
</div>
</div>
<div id="output_div2">
<br />Ville : <select ><option>Choisissez une province</option></select>
</div>
</div>
</div>

Et dans un second fichier, j'envoie la liste (select) correspondante à la région :

	echo"<br />Ville  :        <select name=ville id=text>";

while ($row = mysql_fetch_array($r))
echo"<option value='".$row['id']."'>".$row['codenom']." ".(!empty($row['nb_habitants'])?"(".$row['nb_habitants']." hab.)":"")."</option>";
echo"</select>";

Concrètement, c'est la valeur 'ville' qui ne passe pas :/

Si vous aviez une idée pour que je puisse récupérer cette valeur..

Lien vers le commentaire
Partager sur d’autres sites

Bonjour anonymus,

tu as vérifié que le code html généré par ta boucle est cohérent ? Dans tes select tu as bien des valeurs d'id distintes ?

Tu as essayé d'afficher les variables dans la page recevant le resultat du formulaire ?

Lien vers le commentaire
Partager sur d’autres sites

Tout ca, oui.

La variable 'ville', n'est pas accessible dans le résultat, quand j'affiche print_r($_POST) ou print_r($_GET);

J'ai essayé avec plusieurs valeurs différentes d'id, ou de 'name', mais ca ne change rien :/

D'un autre coté, le javascript ne marche pas sous IE. :(

Lien vers le commentaire
Partager sur d’autres sites

Et tu as essayé avec les valeurs des id entre guillements ?

J'ai aps bien compris non plus comment était récupéré la liste des villes ??? tu parles d'un second fichier ??

Lien vers le commentaire
Partager sur d’autres sites

J'ai un fichier form, qui contient le formulaire.

Il manque un élément à ce formulaire, c'est justement celui que je n'arrive pas à récupérer.

Cet élément provient d'un appel javascript à la page select.province.recherche.php .

Dans le formulaire, donc, on choisit une province, et dynamiquement un appel est fait à la seconde page (select.province.recherche.php). Celle ci affiche (seulement sous ff) une seconde liste avec les villes.

Lorsque l'on sélectionne une province, on a la liste des villes, et si je sélectionne une ville et que je valide, alors je récupère bien la province, mais pas la ville.

Lien vers le commentaire
Partager sur d’autres sites

Mais dans la page ou ton formulaire est généré une fois que le choix de ville est affiché (après avoir choisi une province) le code html est bon ? tu l'as vérifié ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

si tu fais une copie du source obtenu apres le choix d'une province (celui dont Jeromnimo parle...) dans un fichier blabla.html. Affiche ta page blabla.html et valide le formulaire. Arrives tu a recuperer la variable que tu souhaites?

Si cela ne fonctionne pas, desactive le javascript de ton navigateur et retente l'experience avec blabla.html, pas avec le fichier d'origine car de l'ajax sans javascript :( ... (il y a peut etre un evenement javascript qui se declenche et qui fout le bordel...).

Ce ne sont que des pistes qui valent ce qu'elles valent... J'espere que si elles ne resolvent pas ton soucis, au moins elles te meneront a une solution...

A+

Modifié par Bourinho
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...