Lier liste deroulante

Signaler
Messages postés
30
Date d'inscription
samedi 27 novembre 2004
Statut
Membre
Dernière intervention
20 février 2006
-
Messages postés
30
Date d'inscription
samedi 27 novembre 2004
Statut
Membre
Dernière intervention
20 février 2006
-
bonjour, je souhaiterais lier deux liste déroulante que je charge a partir d'une base de donnée

<?php

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('stock', $db);

?>


<form method="POST" action="mouvement.php">

<?php

$query_select = "SELECT sujet FROM sujet";
$req_select = mysql_query($query_select) or die('Erreur SQL !'.$query_select.'
'.mysql_error());
?>

Sujet: <select name="sujet">
<option value="#" selected></option>
<?php
// boucle permetant le listage des valeurs et l'affichage -----------------
while($select = mysql_fetch_array($req_select))
{
echo '<option value='.$select['sujet'].'>'.$select['sujet'].'</option>';
}
?>

</select>

<?php


$query_select = "SELECT libetype FROM typedoc"; // ici j'aimerais recuperer la valeur de la premiere liste afin d'ajouter un where avec cette valeur.

$req_select = mysql_query($query_select) or die('Erreur SQL !'.$query_select.'
'.mysql_error());
?>

Type: <select name="type">
<option value="#" selected></option>
<?php
// boucle permetant le listage des valeurs et l'affichage -----------------
while($select = mysql_fetch_array($req_select))
{
echo '<option value='.$select['libetype'].'>'.$select['libetype'].'</option>';
}
?>

</select>

merci de votre aide

4 réponses

Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
ca me parait difficile ,
puisque l'utilisateur n'a pas encore sélectionné le sujet
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

faut soumettre le formulaire lors de la sélection dans la 1ère liste. Puis construire la seconde liste en fonction du post récupéré. Tant que la sélection n'a pas été faite, la 1ère liste doit rester vide, ou ne pas être affichée, évidemment.
Tu peux le faire sur un onchange de ton select.
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
en fait, il faudrait que tu remplisses les deux listes (ou seulement la 1ere)

<form name='F1' method='post' action='<? $PHP_SELF?>'>

et sur le onchange de la balise (sélection du sujet)

<select name='sujet' onchange='this.form.submit();'>

rappeler la même page en récupérant la valeur de 'sujet'
$_POST['sujet']

là tu pourras sélectionner le type en fonction du sujet
Messages postés
30
Date d'inscription
samedi 27 novembre 2004
Statut
Membre
Dernière intervention
20 février 2006

je ne pense pas que c'est juste ce que j'ai fait mais c'est l'inconvenient d'être debutant j'ai fait comme je pensait comprendre mais ca donne des erreur (logik)


<?php

$db = mysql_connect('localhost', 'root', '');
mysql_select_db('stock', $db);


?>


// <form method="POST" action="mouvement.php">
<form name='F1' mathod='POST' action='<? $PHP_SELF ?>'>

<?php

$query_select = "SELECT sujet FROM sujet";
$req_select = mysql_query($query_select) or die('Erreur SQL !'.$query_select.'
'.mysql_error());
?>

Sujet: <select name="sujet" onchange='this.form.submit();'>
<option value="#" selected></option>
<?php
// boucle permetant le listage des valeurs et l'affichage -----------------
while($select = mysql_fetch_array($req_select))
{
echo '<option value='.$select['sujet'].'>'.$select['sujet'].'</option>';
}
?>

</select>

// </form>

<?php
if(isset($_POST['sujet'])&& !empty($_POST['sujet'])) $sujet=$_POST['sujet'];
else $sujet="bla";

$query_select = "SELECT libetype FROM typedoc where sujet='$sujet'";
$req_select = mysql_query($query_select) or die('Erreur SQL !'.$query_select.'
'.mysql_error());
?>

Type: <select name="type">
<option value="#" selected></option>
<?php
// boucle permetant le listage des valeurs et l'affichage -----------------
while($select = mysql_fetch_array($req_select))
{
echo '<option value='.$select['libetype'].'>'.$select['libetype'].'</option>';
}
?>

</select>