rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Formulaire avec menus deroulants

Posté par cerco, le lundi 15 octobre 2007 à 22:54:04
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
Répondre à cerco  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain42, le mardi 16 octobre 2007 à 00:20:07
Salut,

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
Répondre à alain42

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
alain42, le mardi 16 octobre 2007 à 15:13:04
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
Répondre à alain42

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
cerco, le mercredi 17 octobre 2007 à 15:33:54
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
Répondre à cerco

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Alain42, le jeudi 18 octobre 2007 à 16:51:33
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

}
Répondre à Alain42

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 cerco, le mercredi 24 octobre 2007 à 00:44:33
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+
Répondre à cerco
Logiciels pertinents trouvés dans les téléchargements
Télécharger Daemon Tools Lite 4.30.1Daemon 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
Télécharger HP USB Disk Storage Format Tool 2.0.6HP 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
Télécharger WinAVI Video Capture 2.0.0.1WinAVI 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
Télécharger Mmm Free 2.02Mmm 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
Plus de logiciels gratuits sur « formulaire avec menus deroulants »