refkaben
Messages postés151Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention21 février 2006
-
14 sept. 2005 à 11:05
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
15 sept. 2005 à 14:02
Bonjour à tous!
J'ai un pb avec les listes box,
En fait j'ai deux listes, j'ai rempli la première(secteur) à partir d'une requete select, maintenant je veux remplir la deuxième(sous secteur) aussi à partir d'une requete select mais en fonction de la valeur selectionnée dans la première liste!
voila le code de la premiere liste
<?
$query=mysql_query("SELECT * FROM secteur") ;
?>
<?
echo('<select name="secteur">');
echo('<option value="'.'">'.'</option>');
while ($ligne1=mysql_fetch_array($query)){
echo('<option value="'.$ligne1[nom].'">'.$ligne1[nom].'</option>'); }
echo('</select>');
?>
maintenant il faut récupérer la valeur selectionnée pour l'utiliser dans le test de remplissage de la deuxième.
Alors comment faire?
Au secours!
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 14 sept. 2005 à 11:15
Hello,
tu t'attaques à quelquechose de complexe, là.
Une solution consiste à passer par un intermédiaire, entre tes 1 listes
: 1 bouton sublit (bref, créer 2 formulaires, 1 pour chaque liste).
L'utilisateur fait son choix dans la 1ère liste, valide.
Tu fais le traitement en fonction de ton choix et génère le 2d formulaire en fonction de ce choix (requête sql).
autre solution, js : tu mets un évènement onchange sur ta 1ère liste,
qui va générer une action pour modifier les données de la 2de liste
(donc, on zappe l'intermédiaire, le bouton submit). Le problème est de
marier le js, et une requête sql...
Une solution relativement simple pour ça est d'utiliser les requêtes XMLHTTP :
refkaben
Messages postés151Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention21 février 2006 14 sept. 2005 à 11:29
Merci malalam!
Justement! c'est complexe surtout que je vais récupéer les deux valeurs selectionnés dans les deux listes pour les inserer dans une table de la BD!
je vais essayé de trouver une solution dans le chemin que tu m'a donné!
Merci!
refkaben
Messages postés151Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention21 février 2006 14 sept. 2005 à 13:05
Bonjour!
Je suis désolée pour le fait que je répète ma question!
Mais vraiment j'ai pas trouvé une solution!
j'ai pas pu comprendre le code de toutjavascript.com!
j'ai fais une fonction en javascript qui retourne la valeur selectionnée dans la première liste(je fais appelle à cette fonction dans onchange de la première liste), pour l'utiliser dans la requete de remplissage de la deuxieme, je suis obligée de faire location .href à la meme page mais ça me charge de nouveau lapge,et je veux pas cette solution!
comment faire?
Merci
refkaben
Messages postés151Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention21 février 2006 14 sept. 2005 à 16:27
Salut!
Non je veux rester sur la meme page, et c'est un formulaire d'inscription, donc je dois récupere toute les valeurs pour les inserer à la base de données,
J'essaie le code suivant
<tr>
<td>Secteur d'activité*</td>
<td> <select name="secteur" onChange="sous();" >
<?
$query=mysql_query("SELECT * FROM secteur") or die ("selection impossible") ;
echo('<option value="'.'">'.'</option>');
while ($ligne1=mysql_fetch_array($query)){
$query1=mysql_query("SELECT * FROM soussecteur where idsec = '$idsec' order by idsous ") or die ("selection impossible") ;
$ligne2=mysql_fetch_array($query1);
$nums=mysql_num_rows($query1);
echo('<option value="'.'">'.'</option>');
$i=0;
while (($ligne2=mysql_fetch_array($query1))&&($i<=$nums)){
echo('<option value="'.$ligne2[idsous].'">'.$ligne2[nomsous].'</option>'); }
$i++;
?>
</select>
</td>
</tr>
avec la fonction en java script:
function sous()
{
location.href="comptebusiness.php?idsec="+document.formul.secteur.options.value ;
}
le problème c'est que dans la liste sous secteur j'ai toujours un enregistrement qui manque, et puis je perds la valeur de la première liste.
Je suis bloquée dès le matin aidez moi SVP!
refkaben
Messages postés151Date d'inscriptionvendredi 19 août 2005StatutMembreDernière intervention21 février 2006 15 sept. 2005 à 13:22
Merci beaucoup!
Mais pour le select *, c'est parceque je n'ai que ces deux champs à ma base!
Pour le minuscule je ne vois pas l'intéret, ça sera gentil de ta part de m'expliquer(si vous avez le temps)!
Merci Antho
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 15 sept. 2005 à 14:02
pour le select * c'est plus gourmand que de mettre tous les champs,
même si tu sélectionnes tous les champs de ta table. Ensuite pour les
minuscules c'est pour la compatibilité xhtml strict, de même que pour
le selected="selected"