|
|
|
|
Posté par
cerco, le lundi 15 octobre 2007 à 22:54:04Salut,
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:
<?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 |
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 } |
salut Alain42, tout d'abord je suis desolé pour ma reponse si tardive.
en fait c'est juste pour t'informer que ton code marche nickel. je t'en remercie beaucoup. bien des choses à toi A+ |
| 20/02 23h23 | Récupérer le style Windows XP | Windows XP |
| 07/03 18h51 | Ajouter un raccourci dans le menu contextuel du poste de travail | Windows |
| 15/07 18h13 | Afficher la commande "Exécuter" du menu Démarrer | Windows Vista |
| 10/02 11h16 | Codes d'erreur de Windows | Windows |
| 29/04 20h40 | Avast familial : renouveler / enregistrer sa clé de licence | Virus |
| 30/05 10h21 | Menu déroulant formulaire word | 0 |
| 10/07 02h36 | Menu déroulant | 2 |
| 09/07 10h14 | Problème avec menu déroulant Javascript | 9 |
| 08/07 11h07 | Probleme menu déroulant explorer/firefox | 1 |
![]() | Daemon Tools Lite - Daemon Tools est un émulateur de lecteur CD/DVD, c'est-à-dire un outil capable de créer un lecteur CD ou un lecteur DVD... | Catégorie: Gravure Licence: Freeware/gratuit |
![]() | HP USB Disk Storage Format Tool - HP USB Disk Storage Format Tool est un petit utilitaire permettant de formater une clé USB ou un lecteur MP4 . Il permet... | Catégorie: Formatage/Partitionnement Licence: Freeware/gratuit |
![]() | WinAVI Video Capture - WinAVI Video Capture peut capturer vos films en provenance de périphériques AV comme un magnétoscope, un camescope ou une... | Catégorie: Edition vidéo Licence: Freeware/gratuit |
![]() | Mmm Free - Vous avez remarqué ? Plus vous installez de logiciels, plus le menu contextuel "clic-droit" devient encombré. Mmm Free... | Catégorie: Optimisation Licence: Freeware/gratuit |
![]() | Formula One 06 | Catégorie: Jeu vidéo PSP | 16.99 € La Redoute FR |
![]() | Logitech Formula Vibration Feedback | Catégorie: Joystick | 32.08 € Toutpourlamicro.com |
![]() | Formula One 06 | Catégorie: Jeu vidéo PS2 | 16.99 € 3 Suisses FR |
![]() | ASUS Striker II Formula | Catégorie: Carte mère | 217.50 € MicroChoix |