Formulaire avec menus deroulants
Résolu
cerco
-
cerco -
cerco -
Bonjour,
j'ai un petit formulaire avec deux champs : filieres et matieres
les deux champs sont des menus deroulants:
filieres contient: banque et infogestion
matieres contient: compta, maths fine, algo et uml
j'aimerai savoir comment puis je faire pour que, à chaque filiere corresponde des matieres speciques. c'est à dire que:
sur le menu filiere si je selectionne banque automatiquement sur le menu matieres je n'aurai plus que compta et maths fine. si je selectionne par contre infogestion, alors sur le menu matieres je ne doix avoir que algo et uml.
quelqu'un peut me donner des astuces pour le faire ? un exemple de code pour plus d'eclaircissement ne sera pas mal. car suis pas trop fort en PHP
merci d'avance pour toute contribution
j'ai un petit formulaire avec deux champs : filieres et matieres
les deux champs sont des menus deroulants:
filieres contient: banque et infogestion
matieres contient: compta, maths fine, algo et uml
j'aimerai savoir comment puis je faire pour que, à chaque filiere corresponde des matieres speciques. c'est à dire que:
sur le menu filiere si je selectionne banque automatiquement sur le menu matieres je n'aurai plus que compta et maths fine. si je selectionne par contre infogestion, alors sur le menu matieres je ne doix avoir que algo et uml.
quelqu'un peut me donner des astuces pour le faire ? un exemple de code pour plus d'eclaircissement ne sera pas mal. car suis pas trop fort en PHP
merci d'avance pour toute contribution
A voir également:
- Formulaire avec menus deroulants
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
- Problème avec Google Chrome - Forum Google Chrome
5 réponses
Salut,
Si ton fichier s'appelle formulaire.php
tu fais;
Voila a qqs erreur de frappe pres, je n'ai pas d'editeur php sous la main et en plus je galere avec un clavier qwerty !
Le principe est que au choix dans la liste 1 (onClick=submit) on envoie le formulaire et en fonction du choix on affiche le contenu d'un array ou l'autre dans la deuxieme liste
Si tu changes de nom de fichier penses a changer action="........"
Dans la premiere liste <option ......... le if($filiere==$value) echo 'selected' sert a garder le choix au reafichage du formulaire.
Tu peux rajouter d'autres array bien sur
@lain
Si ton fichier s'appelle formulaire.php
tu fais;
<?php //initialisation des tableaux $array_filiere=array('banque','infogestion'); $array_banque=array('compta', 'maths' fine); $array_infogestion=array('algo',' uml '); if(isset($_POST['filiere'])){ $filiere=$_POST['filiere']; }else{$filiere=""; } ?> <form name="formulaire1" method="post" action="formulaire.php"> <select name="filiere" onClick=submit();> <?php foreach ($array_filiere as $value){ ?> <option value="<?php echo $value; ?>" <?php if($filiere==$value){echo "slected";}><?php echo $value; ?> </option> <?php } ?> </select> <br> <?php // si on a selectionne dans la premiere liste on va afficher la deuxieme if(isset($_POST['filiere'])){ // on determine quel array en fonction du choix switch ($filiere){ case "banque": $array2=$array_banque; break; case "infogestion": $array2=$array_infogestion; break; } // on affiche la liste ?> <select name="matieres"> <?php foreach ($array2 as $value){ ?> <option value="<?php echo $value; ?>" ><?php echo $value; ?> </option> <?php } ?> </select> <?php } ?> </form>
Voila a qqs erreur de frappe pres, je n'ai pas d'editeur php sous la main et en plus je galere avec un clavier qwerty !
Le principe est que au choix dans la liste 1 (onClick=submit) on envoie le formulaire et en fonction du choix on affiche le contenu d'un array ou l'autre dans la deuxieme liste
Si tu changes de nom de fichier penses a changer action="........"
Dans la premiere liste <option ......... le if($filiere==$value) echo 'selected' sert a garder le choix au reafichage du formulaire.
Tu peux rajouter d'autres array bien sur
@lain
Resalut,
comme ceci ca devrait mieux fonctionner:
Avec onChange ca irra mieux !
Si tes listes ont plus d'items tu modifies les $array_.......
@lain
comme ceci ca devrait mieux fonctionner:
<?php //initialisation des tableaux $array_filiere=array('banque','infogestion'); $array_banque=array('compta', 'maths' fine); $array_infogestion=array('algo',' uml '); if(isset($_POST['filiere'])){ $filiere=$_POST['filiere']; }else{$filiere=""; } ?> <form name="formulaire1" method="post" action="formulaire.php"> <select name="filiere" onChange=submit();> <option value="-1">-- Choisissez --</option> <?php foreach ($array_filiere as $value){ ?> <option value="<?php echo $value; ?>" <?php if($filiere==$value){echo "slected";}><?php echo $value; ?> </option> <?php } ?> </select> <br> <?php // si on a selectionne dans la premiere liste on va afficher la deuxieme if(isset($_POST['filiere'])){ $filiere=$_POST['filiere']; if($filiere=="-1"){ echo "<br><font color='red'>Veuillez selectionner une filiere !</font>"; }else{ // on determine quel array en fonction du choix switch ($filiere){ case "banque": $array2=$array_banque; break; case "infogestion": $array2=$array_infogestion; break; } // on affiche la liste ?> <select name="matieres"> <option value="-1">-- Choisissez --</option> <?php foreach ($array2 as $value){ ?> <option value="<?php echo $value; ?>" ><?php echo $value; ?> </option> <?php } ?> </select> <?php } } ?> </form>
Avec onChange ca irra mieux !
Si tes listes ont plus d'items tu modifies les $array_.......
@lain
salut alain et merci pour ton code. je te signale que ton code marche bien. seulement y'a un petit problème, en fait mon formulaire ne contient pas juste ces deux champs, il y'a d'autres champs aussi à remplir(nom, prenom,...), alors je me rend compte qu'avec ton code le submit est remplacé par la selection d'une filiere. or dans le formulaire il y'a un bouton "envoyer" qui permet de valider le formulaire aprè remplissage de tous les champs. du coup je ne sais plus ce que je dois mettre au niveau de action=".....", afin de recuperer touts ces infos.
y'a t-il un moyen de regler cela?
encore merci d'avance
y'a t-il un moyen de regler cela?
encore merci d'avance
Salut,
tu laisses action= comme c'est
if(isset($_POST['filiere'])){
$filiere=$_POST['filiere'];
}else{$filiere="";
}
if(isset($_POST['nom'])){
$nom=$_POST['nom'];
}else{$nom="";
}
if(isset($_POST[pre'nom'])){
$prenom=$_POST['prenom'];
}else{$prenom="";
}
etc....
dans les autres input tu mets:
<input type="text" name="nom" value="<?php echo $nom; ?>">
<input
<input name="prenom" value="<?php echo $prenom; ?>">
etc... ainsi lorsque le formulaire sera poste par le submit de la liste on ne les perdra pas
tu mets qd même un bouton submit dans ton formulaire
<input type="submit" name="envoyer" value="Soumettre">
et dans ton fichier formulaire.php:
tu rajoutes une condition
if($_POST['envoyer']=="Soumettre"){ // attention adaptes en fonction de ce que tu mets dans ton bouton comme value
// tes instructions de traitement des valeurs du formulaire
}
tu laisses action= comme c'est
if(isset($_POST['filiere'])){
$filiere=$_POST['filiere'];
}else{$filiere="";
}
if(isset($_POST['nom'])){
$nom=$_POST['nom'];
}else{$nom="";
}
if(isset($_POST[pre'nom'])){
$prenom=$_POST['prenom'];
}else{$prenom="";
}
etc....
dans les autres input tu mets:
<input type="text" name="nom" value="<?php echo $nom; ?>">
<input
<input name="prenom" value="<?php echo $prenom; ?>">
etc... ainsi lorsque le formulaire sera poste par le submit de la liste on ne les perdra pas
tu mets qd même un bouton submit dans ton formulaire
<input type="submit" name="envoyer" value="Soumettre">
et dans ton fichier formulaire.php:
tu rajoutes une condition
if($_POST['envoyer']=="Soumettre"){ // attention adaptes en fonction de ce que tu mets dans ton bouton comme value
// tes instructions de traitement des valeurs du formulaire
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question