bonjour,
voilà qq heures que je me casse la tête et pas de réponse sur le net.
J'ai 2 listes déroulantes liées: Lorsque je fais une sélection dans la 1ere, la seconde se met à jour automatiquement à partir d'une base de données.
Quand je valide le formulaire (le problème est le même en post ou en get), sur la page suivante je récupère sans problème la value de ma 1ere liste mais pas de la seconde ! J'imagine que c'est pacqu'elle est construite dynamiquement ?
J'ai même essayé de stocker dans un champ hidden mais rien à faire...
Sous ie ça marche mais pas sous firefox :-(
la fonction javascipt appelée sur onchange de la liste:
le code qui se cache derrière la variable fichier ci dessus:
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 ... 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 if(xhr.readyState == 4 && xhr.status == 200){ leselect = xhr.responseText; // On se sert de innerHTML pour rajouter les options a la liste document.getElementById("bloc"+liste_cible).innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST",fichier,true); // ne pas oublier ça pour le post xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); // ne pas oublier de poster les arguments sel = document.getElementById(liste_source); id_liste_source = sel.options[sel.selectedIndex].value; xhr.send(id_lien+"="+id_liste_source+next_arg);
le //echo "<select class='txt_menu_der' name='list_etab' id='list_etab' onchange=\"alert('oo')\">"; quand il est décommenté m'alerte bien. La liste se remplie bien mais impossible de récupérer la valeur
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 include ('../param.inc'); $commune=$_POST["c_commune"];$id_periode=$_POST["id_periode"]; echo "<select class='txt_menu_der' name='list_etab' id='list_etab' onchange=\"stock_station('blocsta_hidden','sta_hidden',this.value)\">"; //echo "<select class='txt_menu_der' name='list_etab' id='list_etab' onchange=\"alert('oo')\">"; if(isset($_POST["c_commune"])){ $dbconn = pg_connect("host=$host dbname=$dbname user=$user password=$password") or die('Connexion impossible : ' . pg_last_error()); $query = "SELECT distinct l_station, site_ref_station.id_station FROM site_ref_station, site_ref_type_arret, site_ref_ligne_station where id_periode='".$id_periode."' and site_ref_ligne_station.id_station = site_ref_station.id_station and site_ref_station.c_type = site_ref_type_arret.c_type and l_type in ('Etablissement Scolaire', 'Arrêt scolaire') and c_commune='".$commune."' and l_ar = 'aller'"; $result = pg_query($dbconn, $query) or die('Échec requête : ' . pg_last_error()); if(pg_num_rows($result) == 0) { echo "<option value='-1'>Aucun établissement trouvé !</option>\n"; }else { echo "<option value='-1'>Sélectionnez un établissement</option>\n"; while ($line = pg_fetch_row($result)) { $l_rue = str_replace("'", "#",$line[0]); echo "<option value='".$line[1]."'>".$line[0]."</option>\n"; } } pg_free_result($result); pg_close($dbconn); } echo "</select>";
Partager