Liste liée - Formulaire [Résolu]

Signaler
Messages postés
19
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
14 août 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
Bonjour,


J'essai de liées des listes dans un formulaire, mais après mon choix rien ne se passe.. Mais je n'ai pas d'erreur..


Page appelante :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Acquisition species variant</title>
<head>
<script type="text/javascript">
function request05(liste)
{
var l1 = f.elements["list1"];
var l2 = f.elements["list2"];
var index = l1.selectedIndex;
if(index < 1)
l2.options.length = 0;
else{
var xhr_object = null;

if(window.XMLHttpRequest)// Firefox
xhr_object = new XMLHttpRequest();
elseif(window.ActiveXObject)// Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else{// XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
 
xhr_object.open("POST", "test2.php", true);

xhr_object.onreadystatechange = function(){
if(xhr_object.readyState == 4)
eval(xhr_object.responseText);
}
 
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var data = "speciesvariant_name="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
xhr_object.send(data);
}
 
}
</script>
</head>

<form name="enter_nvll_xp_choix" action="Entree_dans_la_bdd/enter_DB_experience.php" method="POST">
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
 
$experience = mysql_query("SELECT * FROM speciesvariant");
 
echo '<tr><td>Test listes liees:</td>';

echo '<td><select name="list1" id="list1" class="ButtonL" onchange="request05(this.form)">';
echo '<option value="" selected disabled>Choix</option>';

while($speciesvariant_name1 = mysql_fetch_array($experience))
{
$speciesvariant_name2 = $speciesvariant_name1['speciesvariant_name'];
echo "<option value="$speciesvariant_name2"> $speciesvariant_name2 </option>";
}
//echo '</select>';
echo '</td><td><select name="list2" id="list2" class="ButtonL"></td>';

 
/*---------------------------------------------------------------------*/
 
 
mysql_close();
?>

test2.php :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
<head>
 
</head>
 

 
<?php
$mysql_db = @mysql_connect("localhost", "root", "");
@mysql_select_db("test");
 $query "SELECT `AGI` FROM `gene` WHERE `speciesvariant_name` '".$_POST["speciesvariant_name2"]."'";
$query .= " ORDER BY `AGI`";
$result = @mysql_query($query);
 
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';
while($r = mysql_fetch_array($result))
echo 's.options[s.options.length] = new Option("'.$r["AGI"].'");';
 
@mysql_close($mysql_db);
?>

 
</html>

Est-ce vous pourriez me dire pourquoi la seconde liste ne se rempli pas ?


Merci pour votre aide.


Bien Cordialement,

Onylink (Master 1 Bio-informatique)

6 réponses

Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
Bonjour,

oulah....   
tu utilises ajax, ça retourne du texte dans une variable javascript !
donc, si je lis bien :
echo 'var o = null;';
echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
echo 's.options.length = 0;';

???? c'est du javascript ! donc non exécuté !
il faudrait le faire "manuellement"
et dans la même réponse, ça ajoute du html !
echo 's.options[s.options.length] = new Option("'.$r["AGI"].'");';
qui n'est pas affiché non plus ! et pas dans une balise <select>
là aussi, il faut le faire "manuellemnt" !

sans préjuger de ce qui se passe et coté php, et coté javascript !
comme on ne peut pas tester....

t'es sur la mauvaise voie....
tout ce que je peux faire, pour le moment, c'est
te donner un lien où la gestion de listes liées
est abordé : c'est ici

Cordialement [mon Site] [M'écrire] Bul
Messages postés
19
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
14 août 2009

oki, merci pour le lien..

Pour faire l'AJAX j'ai suivi un tuto.. J'ai remplacé mes variables et adapté à ma bdd.
http://www.toutjavascript.com/savoir/xmlhttprequest.php3#section_05

Je vais tenter de faire avec le lien que tu m'as envoyé..

Cordialement,
Onylink
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>Pour faire l'AJAX j'ai suivi un tuto..
certes... tu a simplement shunté que le script sur le serveur
retourne des données, du texte brut... qui doit être exploité
par le javascript.
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
et, ça doit dater un peu...
ajax fonctionne avec tous les navigateurs de nos jours
Messages postés
19
Date d'inscription
jeudi 19 mars 2009
Statut
Membre
Dernière intervention
14 août 2009

Merci grâce à ton lien j'ai réussi à faire ce que je voulais..

Maintenant je vais essayé d'en lier plusieurs..
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
nickel si ça baigne.
>>Maintenant je vais essayer d'en lier plusieurs..
3 ou plus, un ch'tiot peu plus complexe, mais
   ce n'est au fond, qu'une "généralisation" de
   2 listes    ;o))