Liste déroulante liée avec php

Fermé
emma - 25 juil. 2016 à 23:46
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 - 27 juil. 2016 à 12:05
bonsoir tous,j’aimerais savoir si il est possible de gérer des listes déroulantes en php seulement ctd le chargement auto de la deuxième liste dépend du choix sélectionner dans la première
j'utilise ce code qui me renvoi pas un erreur mais rien s'affiche dans la 2eme liste
merci d'avance pour votre aide
///////////////////////////////////////
<form method="post" action="fonction_php/ajout_cstr.php" >
<tr>
<td class="theme">thème</td ><td>
<select name="theme" id="theme" >
<?php

$sqli = mysqli_connect('localhost', 'root', '', 'gestion_des_requetes') or die(mysqli_error($sqli));
$req="SELECT libelle_theme FROM theme";
$res=mysqli_query($sqli, $req) or die("Erreur SQL : <br>".mysqli_error());
$compt=mysqli_num_rows($res);
if(!empty($compt)){
while($l=mysqli_fetch_assoc($res)){
foreach($l as $v){
?>
<option><?php echo "$v"; ?></option>
<?php

}
}
}
?>

</select>
</td>
<td class="stheme">sous_thème</td ><td>
<select name="sous_theme" id="sous_theme" >
<?php

$sqli = mysqli_connect('localhost', 'root', '', 'gestion_des_requetes') or die(mysqli_error($sqli));
/*
if (isset($_POST['theme']))
{
$choix = $_POST['theme'];

$req1= ("SELECT id_theme FROM theme WHERE libelle_theme==' $choix' ");
$res1=mysqli_query($sqli, $req1) or die("Erreur SQL : <br>".mysqli_error());
$compt1=mysqli_num_rows($res1);
  • /


if (isset($_POST['theme']))
{
$choix = $_POST['theme'];

$reponse =("SELECT id_theme FROM theme WHERE libelle_theme='$choix' ");
$result=mysqli_query($sqli, $reponse) or die("Erreur SQL : <br>".mysqli_error());
/*-------------------------------------------------*/
$req="SELECT libelle_sous_theme FROM sous_theme where sous_theme.id_theme=$reponse";

$res=mysqli_query($sqli, $req) or die("Erreur SQL : <br>".mysqli_error());
$compt=mysqli_num_rows($res);
if(!empty($compt)){
while($l=mysqli_fetch_assoc($res)){
foreach($l as $v){
?>
<option><?php echo "$v"; ?></option>
<?php

}
}
}

}
?>
</select>
</td>
</tr>
A voir également:

2 réponses

totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par totodunet le 26/07/2016 à 13:56
salut,

"le chargement auto de la deuxième liste dépend du choix sélectionner dans la première"

si tu veux que le serveur charge la deuxième liste, oui le PHP est une solution (nécessite du coup d'envoyer le premier choix au serveur, ce que je ne vois pas dans le code). Par contre si c'est côté client faut le faire en JavaScript.

Qui ne tente rien n'a rien
0
salut toto,je suis débutante en php ,et je souhaite faire tout ca en php (2eme liste se charge suivant le choix sélectionne dans la 1ere ) pouvez_vous me montrer comment?
0
totodunet Messages postés 1377 Date d'inscription mercredi 18 mars 2009 Statut Membre Dernière intervention 5 mars 2020 199
Modifié par totodunet le 27/07/2016 à 12:05
salut emma,

si tu veux tout faire en php, tu as pas d'autre choix que de faire 2 formulaires distincts. Un pour le premier choix et un pour le second. L'utilisateur retourne le premier choix au serveur qui en fonction de ça génère le second formulaire qu'il va bien. Tu dois donc avoir un submit pour le premier choix et un autre lorsque l'utilisateur aura validé son 2ème.
0
Utilisateur anonyme
26 juil. 2016 à 22:14
Bonjour,

Si tu veux faire qu'en php, tu dois envoyer les données du premier formulaire vers un second. Exemple :
Page1.php :
<form action="page2.php">
Ton select et ton submit
</form>


Page2.php :
<form>
Ton select et ton submit en fonction des données récupérer de ton premier select
</form>


Cordialement,
0