liste deroulante depandante avec php
Dernière réponse : dans Programmation
Bonjour,
Pour mon site, je veux créer un formulaire avec 2 listes déroulantes sur lesquelles.
si on selectionne une valeur dans la premiere liste (onChange),
je veux que la deuxieme liste soit remplie automatiquement partir d'une table mySQL.
par exemple si je selectionne FRANCE dans la liste1 (qui contient les pays), je veux que la liste2 (qui contient les villes) m'affiche les grandes villes de FRANCE (qui sont generalement dans une table myql).
j'ai pu remplir la liste des pays et non celle des villes (avec php bien sur)
si quelqu'un peut me donner un coup de main.
merci.
Pour mon site, je veux créer un formulaire avec 2 listes déroulantes sur lesquelles.
si on selectionne une valeur dans la premiere liste (onChange),
je veux que la deuxieme liste soit remplie automatiquement partir d'une table mySQL.
par exemple si je selectionne FRANCE dans la liste1 (qui contient les pays), je veux que la liste2 (qui contient les villes) m'affiche les grandes villes de FRANCE (qui sont generalement dans une table myql).
j'ai pu remplir la liste des pays et non celle des villes (avec php bien sur)
si quelqu'un peut me donner un coup de main.
merci.
Autres pages sur : liste deroulante depandante php
Lassé par la pub ? Créez un compte
Si tu fais ça en php, c'est peut-être pas très judicieux, vu qu'il faudra recharger ta page à chaque clic dans le premier menu pour afficher la liste dans le 2e... Mais c'est possible. Par ex : tu link ta valeur de la première liste (France par ex) dans une variable GET et après tu fais une boucle avec condition en php pour dire que si GET existe alors il faut lister toutes les valeurs en dépendant depuis ta table mysql (par ex, il faudra 2 champ par ville : un avec le nom de la ville et un avec le nom du pays). Essaie d'écrire un début de code et on t'aidera à le finir si tu n'y arrives pas
Oriente plutôt vers du javascript pour le faire. Mais dans ce cas je ne peux pas t'aider, je ne connais pas assez le javascript
Oriente plutôt vers du javascript pour le faire. Mais dans ce cas je ne peux pas t'aider, je ne connais pas assez le javascript
merci pour tout marsien!
ça me touche beaucoup du fait d'essayer.
je vais tout de meme te presenter ma bd avant de vous envoyer le code.
tpays(idpays*,pays); tville(idpays*,idville*,ville);
j'éspere que tu pourras me donner un coup de main, l'essentiel pour moi que ça puisse marcher.
<form method="post" name="fvn"><br>
Pays
<select name="pays" size="1" id="pays" onChange="">
<option value="%" selected>Indifferente</option>
<?php
mysql_connect("localhost","root");
mysql_select_db("autocom");
$requet = "SELECT * FROM pays";
if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$idpays=$ligne[0];
$pays=$ligne[1];
echo '<option value="',$idpays,'">',$pays,'</option>';
}
}
else
{
echo "erreur de la requete";
}
mysql_close();
?>
</select><br><br><br>
Ville
<select name="ville" size="1" id="ville">
<option value="%" selected></option>
</select><br>
<input name="submit" type="submit" value="Envoyer">
<br>
</form>
ça me touche beaucoup du fait d'essayer.
je vais tout de meme te presenter ma bd avant de vous envoyer le code.
tpays(idpays*,pays); tville(idpays*,idville*,ville);
j'éspere que tu pourras me donner un coup de main, l'essentiel pour moi que ça puisse marcher.
<form method="post" name="fvn"><br>
Pays
<select name="pays" size="1" id="pays" onChange="">
<option value="%" selected>Indifferente</option>
<?php
mysql_connect("localhost","root");
mysql_select_db("autocom");
$requet = "SELECT * FROM pays";
if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$idpays=$ligne[0];
$pays=$ligne[1];
echo '<option value="',$idpays,'">',$pays,'</option>';
}
}
else
{
echo "erreur de la requete";
}
mysql_close();
?>
</select><br><br><br>
Ville
<select name="ville" size="1" id="ville">
<option value="%" selected></option>
</select><br>
<input name="submit" type="submit" value="Envoyer">
<br>
</form>
Voilà un exemple de ce qui pourrait être fait en php. Je laisse le soin à ceux qui connaisse l'ajax (javellisant ou non
) de proposé une solution en tirant parti.
Je t'ai commenté le code ci-dessous pour que tu t'y retrouves. Il n'y a rien de très compliqué, mais si il y a un truc qui te parait obscur, n'hésite pas demander
En espérant que c'est ce que tu souhaitais
) de proposé une solution en tirant parti.Je t'ai commenté le code ci-dessous pour que tu t'y retrouves. Il n'y a rien de très compliqué, mais si il y a un truc qui te parait obscur, n'hésite pas demander
<form method="post" name="fvn" action="test2menuderoulants.php"> <!-- on recharge la page avec le nouveau paramètre induit par la validation d'une option dans le premier menu déroulant, c'est-à-dire la sélection d'un pays -->
<br>
Pays
<select type="checkbox" name="pays" size="1" id="pays" onChange="">
<option value="">Indifferente</option>
<?php
mysql_connect("localhost","root","");
mysql_select_db("autocom");
$requet = 'SELECT * FROM pays ORDER BY pays'; // on classe par ordre aphabétique les pays
if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$idpays=$ligne[0];
$pays=$ligne[1];
echo '<option value="' . $idpays . '">' . $pays . '</option>';
}
}
else
{
echo "erreur de la requete";
}
?>
</select>
<input name="submit" type="submit" value="Envoyer"> <!-- peut être remplacer par un javascript onChange... -->
<br><br>
</form>
<br>
<form method="post" name="fvn" action="test2menuderoulants.php"><!--comme pour le premier menu déroulant, on peut recharger la page en appliquant le nouveau paramètre, c'est-à-dire le choix de la ville -->
<br>
Ville
<select name="ville" size="1" id="ville">
<option value="%" selected></option>
<?php
if(isset($_POST['pays'])) // on vérifie qu'un pays à bien été sélectionné
{
$requet = 'SELECT * FROM ville WHERE idpays=' . $_POST['pays'] . ' ORDER BY ville'; // on choisit dans la table ville les villes dont le pays correspond à la variable POST, c'est-à-dire à celui qui avait été sélectionné dans le 1er menu déroulant et on les classe par ordre alphabétique
if($resultat=mysql_query($requet))
{
while($ligne= mysql_fetch_row($resultat))
{
$idpays=$ligne[0];
$idville=$ligne[1];
$ville=$ligne[2];
echo '<option value="' . $idville . '">' . $ville . '</option>';
}
}
else
{
echo "erreur de la requete";
}
}
mysql_close();
?>
</select>
<input name="submit" type="submit" value="Envoyer">
</form>
En espérant que c'est ce que tu souhaitais
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumGerer une liste deroulante en php
- ForumCrã er une liste deroulante php
- ForumRemplir liste deroulante php
- ForumTri 2 liste deroulante php
- ForumListe deroulante php sql
- ForumRemplir une liste deroulante
- ForumRecuperer liste deroulante
- ForumSdz liste deroulante
- ForumCopier une liste deroulante
- ForumJs liste deroulante
- Voir plus
Je crois que je n'ai pas laissé assez de % pour la malveillance