begin process at 2012 05 29 09:09:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

Liste liée - Formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Liste liée - Formulaire

jeudi 25 juin 2009 à 13:31:36 | Liste liée - Formulaire

onylink

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>
<body>
<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>
 
<body>
 
<?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);
?>
</body>
 
</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)
jeudi 25 juin 2009 à 13:50:19 | Re : Liste liée - Formulaire

Bul3

Membre Club
Réponse acceptée !


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
jeudi 25 juin 2009 à 14:20:07 | Re : Liste liée - Formulaire

onylink

oki, merci pour le lien..

Pour faire l'AJAX j'ai suivi un tuto.. J'ai remplacé mes variables et adapté à ma bdd.
[ Lien ]


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

Cordialement,
Onylink
jeudi 25 juin 2009 à 14:41:54 | Re : Liste liée - Formulaire

Bul3

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

jeudi 25 juin 2009 à 14:43:33 | Re : Liste liée - Formulaire

Bul3

Membre Club
et, ça doit dater un peu...
ajax fonctionne avec tous les navigateurs de nos jours

jeudi 25 juin 2009 à 16:15:33 | Re : Liste liée - Formulaire

onylink

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

Maintenant je vais essayé d'en lier plusieurs..

jeudi 25 juin 2009 à 16:34:17 | Re : Liste liée - Formulaire

Bul3

Membre Club
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))



Cette discussion est classée dans : mysql, echo, xhr, object, speciesvariant


Répondre à ce message

Sujets en rapport avec ce message

pb XMLHTTPRequest [ par LaTatadu91 ] Bonjour a tous, voila je cherche a changer les valeurs de plusieurs input situés ds un tableau sans recharger la page sur un onchange de balise : ap XMLHttpRequest probleme [ par hlimaiem ] Limaiem heykelBonjour, j'ai un page php qui contient un tableau remplis depuis une base de donnees. Ma base et rempli a partir d'un programme en java Rafraichir la page via choix dans liste [ par pasdie ] Bonjour à tous,Voilà mon problème :J'ai une page PHP contenant deux listes.Ma première liste est remplie via une requete sur mon serveur (je possède E Vérification de doublons [ par eddie5150 ] Bonjour à tous,je viens de me lancer dans AJAX, mais je ne comprends pas encore tout très bien,aussi j'ai essayé d'effectuer une vérification automati recuperation données AJAX [ par corsamobile ] Bonjour à tous,J'ai créé une liste deroulante liée avec trois listes deroulantes qui vont chercher leurs données dans une BDD.En selectionnant une ref créer des lien en ajax [ par baloc ] bonjour à tous.Je souhaite réaliser des liens en ajax. ça c'est la partie simple théorique. maisntenant l'autre partie. les liens sont des éléments d' Rafraichir div avec select méthode POST [ par gabi26 ] Bonjour,Mon premier message sur le forum qui jusque là m'a bien inspiré!Voici le Hic:J'utilise un select pour appeler différentes pages php. Le script Envois formulaire XMLHttpRequest POST BDD [ par Annadrill ] bonjour,alors voilà, cela fait trois jours que je tourne en rond avec un problème qui à l'air idiot mais que je n'arrive à résoudre.je m'explique, j'a Script Ajax Marche pas sous IE7, pas de bouton retour [ par verbiagecasselaicouill ] Seigneur je suis en train de couler...J'utilise un script Ajax posté sur ce site il y a longtemps par atlante pour charger les pages dans des div.Prob Problème javascript + liste déroulante + requête SQL [ par exorzist ] Bonjour, voilà je suis bloqué depuis un bon moment maintenant:en fait je veux pouvoir, au changement dans une liste déroulante, récupérer son value af


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales