Liste deroulante
vinsbil
Messages postés
72
Statut
Membre
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
salut je viens de créé 2 listes déroulantes qui marche de la maniere suivante losque le premier est selectionner le second doit avoir des proprieter bien defini ainsi de suite alor jaimerai savoir comment sa se passe voici mon code
<select name="region" id="">
<option value="01">lagune</option>
<option value="02">zanzan</option>
<option value="04">moyen cavaly</option>
</select>
</td>
</tr>
<tr>
<td>LIEU DE NAISSANCE</td>
<td>
<?php
echo "<select name='lieunaiss'>";
if ($_POST['region']=01)
{
echo "<option value='abi'>abidjan</option>";
echo "<option value='bing'>bingerville</option>";
echo "<option value='any'>anyaman</option>";
echo "<option value='bass'>bassam</option>";
}
elseif ($_POST['region']=02)
{
echo "<option value='bkou'>bondoukou</option>";
echo "<option value='bing'>bouna</option>";
echo "<option value='any'>tanda</option>";
echo "<option value='bass'>goumere</option>";
}
elseif($_POST['region']=03)
{
echo "<option value='bke'>bouake</option>";
echo "<option value='dal'>daloa</option>";
echo "<option value='dab'>dabakala</option>";
echo "<option value='ser'>serebou</option>";
}
echo "</select>";
?>
salut je viens de créé 2 listes déroulantes qui marche de la maniere suivante losque le premier est selectionner le second doit avoir des proprieter bien defini ainsi de suite alor jaimerai savoir comment sa se passe voici mon code
<select name="region" id="">
<option value="01">lagune</option>
<option value="02">zanzan</option>
<option value="04">moyen cavaly</option>
</select>
</td>
</tr>
<tr>
<td>LIEU DE NAISSANCE</td>
<td>
<?php
echo "<select name='lieunaiss'>";
if ($_POST['region']=01)
{
echo "<option value='abi'>abidjan</option>";
echo "<option value='bing'>bingerville</option>";
echo "<option value='any'>anyaman</option>";
echo "<option value='bass'>bassam</option>";
}
elseif ($_POST['region']=02)
{
echo "<option value='bkou'>bondoukou</option>";
echo "<option value='bing'>bouna</option>";
echo "<option value='any'>tanda</option>";
echo "<option value='bass'>goumere</option>";
}
elseif($_POST['region']=03)
{
echo "<option value='bke'>bouake</option>";
echo "<option value='dal'>daloa</option>";
echo "<option value='dab'>dabakala</option>";
echo "<option value='ser'>serebou</option>";
}
echo "</select>";
?>
6 réponses
-
je t'ai modifié ton code pour qu'il fonctionne bien que ce ne soit pas la meilleure solution, surtout si tu as beaucoup de valeurs dans liste 1
<form name="form1" action="" method="post" > <select name="region" id="region" onchange="submit();"> <option value="-1" <?php if(isset($_POST['region']) && $_POST['region'] == "-1") {echo "selected";} ?> >Choisissez</option> <option value="01" <?php if(isset($_POST['region']) && $_POST['region'] == "01") {echo "selected";} ?> >lagune</option> <option value="02" <?php if(isset($_POST['region']) && $_POST['region'] == "02") {echo "selected";} ?> >zanzan</option> <option value="04" <?php if(isset($_POST['region']) && $_POST['region'] == "04") {echo "selected";} ?> >moyen cavaly</option> </select> <!-- ci dessus, qd on change la selection dans la lsite ça poste le formualire (rechargement de la page) if(isset($_POST['region']) && $_POST['region'] == "01") {echo "selected";} c'est pour que la valeur selectionnée reste affichée lors du rechargement de la page la première option choisisssez c'est pour avoir un changement obligatoire de selection, sinon on ne pourrait pas selectionner l'option 1 --> </td> </tr> <tr> <td>LIEU DE NAISSANCE</td> <td> <?php if(isset($_POST['region']) && $_POST['region'] != "-1"){ echo "<select name='lieunaiss'>"; if ($_POST['region']=="01") //attention comparaison c'est == et pas = { echo "<option value='abi'>abidjan</option>"; echo "<option value='bing'>bingerville</option>"; echo "<option value='any'>anyaman</option>"; echo "<option value='bass'>bassam</option>"; } elseif ($_POST['region']=="02") { echo "<option value='bkou'>bondoukou</option>"; echo "<option value='bing'>bouna</option>"; echo "<option value='any'>tanda</option>"; echo "<option value='bass'>goumere</option>"; } elseif($_POST['region']=="03") { echo "<option value='bke'>bouake</option>"; echo "<option value='dal'>daloa</option>"; echo "<option value='dab'>dabakala</option>"; echo "<option value='ser'>serebou</option>"; } echo "</select>"; } ?> </form>
- si tes valeurs sont dans une BDD
- si tu ne veux pas le rechargement de la page
il faut prévoir une autre solution -
en gros si tu sélectionnes lagune avec value="01" dans ton option (balise de liste déroulante) dans ta première liste déroulante tu appels abidjan, bingerville, anyaman, bassam grâce à une variable de session php qui compare avec la value de ta première liste déroulante et comme $_POST['region']=01 ça affiche tout ça, même logique pour la value 2 et la value 3.
As tu compris?
Si tu as une base de données, je peux te proposer un code un peu plus propre et qui ne nécessite pas de rechargement de page comme en ce moment avec ce code... -
mai ce code il est juste ou pas passe que sa ne marche pas je ne comprend pas pourquoi
-
regardes plus du côté d'ajax avec une base de données ce sera beaucoup plus simple.
http://www.6ma.fr/tuto/listes-deroulantes-dynamiques-en-ajax/ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
petite question lances tu ton code avec wamp ou un soft du même style?
-
non ton code n'est pas juste, il faut que suite a un choix dans la premiere liste il y ait un nouvel appel au script php, pour que ce choix passe par tes if(...) elseif(..)
mais je suis d'accord avec woulfmoon avec une BDD et Ajax c'est beaucoup mieux