Jump to content
Sign in to follow this  
Anonymus

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

Rate this topic

Recommended Posts

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..

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other 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. :(

Share this post


Link to post
Share on other 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 ??

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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é ?

Share this post


Link to post
Share on other sites

il est bon, oui. A priori. Je l'ai vérifié plusieurs fois, je ne vois pas où serait l'erreur s'il y en a une. :/

Share this post


Link to post
Share on other 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+

Edited by Bourinho

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...