Formulaire

bonjour,
comment fait-on quand on a 2 menu déroulant
je m'explique
j'ai un formulaire avec un 1er menu nommé liste qui contient 2 valeurs " campagne ete"
" campagne hiver"
et un autre nommé liste1
qui contient les valeurs "par destination"
"par vol"
aprés choix et validation j'execute
if ($liste =="Destination")
{
mais si je met
if ($liste1 =="campagne")
{
ca ne marche pas comment faut-il faire?
merci infinimment de vos réponses
martine

3 réponses

  1. Bonjour Martine,

    La variable $liste ou $liste1 ne contient pas "automatiquement" la valeur qui a été choisie dans ton formulaire. Tu dois passer par les variables globales $_POST ou $_GET, selon la method employé dans la balise form.

    Après un click sur le bouton submit, $_POST("liste") et $_POST("liste1") seront existantes (utiliser $_GET si method="get" dans la balise form). $_POST("liste") contiendra alors "campagne ete" ou "campagne ete", qui correspond à la valeur de "value" de la balise option.

    <option value="campagne ete">campagne ete</option>


    http://www.nexen.net/docs/php/annotee/language.variables.external.form.php?lien=_post

    J'espère que ça répond bien à ta question... (?)

    Caroline
    1. bonjour et merci pour la réponse mais il y a surement quelque chose que je fais mal
      pourriez-vous regarder mon code j'ai abrégé

      <? if ($liste == "Destination" || $liste == "Vol")
      {
      ?>

      <form method="POST" action="pv1.php" name="F1" onSubmit="return verif()">

      <table width="50%" align="center" border="1" cellpadding="8" bordercolor="#003366">
      <tr>
      <td class="celtab"><?php echo $liste1 ?></td> <td>
      <select size="1" name="liste2">
      <option value="" selected>Sélectionnez</option>
      <?php
      switch($liste)
      {

      case "Destination":
      $reqSelect1 = "SELECT num_dom, libelle_dom FROM DOM";
      $resSelect1 = mysql_query($reqSelect1);
      while($val = mysql_fetch_row($resSelect1))
      echo "\t\t\t<option value=\"".$val[0]."\">".$val[1]."</option>\n";
      break;

      case "Vol":
      $reqSelect = "SELECT num_aero, libelle_aero FROM AEROPORT_DEP";
      $resSelect = mysql_query($reqSelect);
      while($val = mysql_fetch_row($resSelect))
      echo "\t\t\t<option value=\"".$val[0]."\">".$val[1]."</option>\n";
      break;

      }
      ?>
      </select>

      <input type="hidden" name="liste" value="<?php echo $liste; ?>" />
      <input type="hidden" name="liste1" value="<?php echo $liste1; ?>" />
      </td>
      </table>
      <table width="12%" border="0" cellspacing="0" cellpadding="2" align="center">
      <tr align="center">
      <td width="45%" >
      <input type="submit" name="Submit" value="Valider" >
      </td>
      </tr>
      </table>
      </form>
      </body>
      </html>
      <?php

      exit();
      }
      ?>

      <body>

      <form method="POST" action="menu_pv.php" name="F1" onSubmit="return verif()">

      <p>
      <table width="50%" align="center" border="1" cellpadding="8" bordercolor="#003366">
      <tr>
      <td class="celtab">Campagne</td>
      <td>
      <select size="1" name="liste1">
      <option value="" selected>Sélectionnez</option>
      <option value="Campagne_ete" >Par Campagne ete</option>
      <option value="Campagne_hiver">Par Campagne hiver</option>
      </select>
      </td>
      </table>
      </table>
      <p>
      </table>
      <p>
      <br>
      <table width="50%" align="center" border="1" cellpadding="8" bordercolor="#003366">
      <tr>
      <td class="celtab">Destination</td><td>
      <select size="1" name="liste">
      <option value="" selected>Sélectionnez</option>
      <option value="Destination">Par Destination</option>
      <option value="Vol">Par Vol</option>
      </select>
      </td>
      </table>
      <table width="12%" border="0" cellspacing="0" cellpadding="2" align="center"><tr align="center"> <td width="45%" ><input type="submit" name="Submit" value="Valider" >
      </td>
      </tr></table>
      </form>
      </body>
      </html>
      1. la suite de mon formulaire
        <p class="titre1" align="center"> Liste <?php if($liste1 == $Campagne_ete) echo "été"; else echo "hiver"; ?>
        </p>

        <form method="post" name="F1" action="pv1.php">

        <table width="100%" border="1" cellpadding="2" bordercolor="#003366" align="center">
        <tr>

        <td class="celtab">
        <div align="center">Date de départ souhaitée</div>
        </td>
        <td class="celtab">
        <div align="center">Nb de places adultes</div>
        </td>
        <td class="celtab">
        <div align="center">Nb de places enfants</div>
        </td>
        <td class="celtab">
        <div align="center">Nb de places bébés</div>
        </td>
        <td class="celtab">
        <div align="center">Nb de places total</div>
        </td>
        </tr>
        <?

        print $liste1;
        if (($liste1== $Campagne_ete || $liste1== $Campagne_hiver)&&($liste =="Destination"))
        {

        $query = "SELECT * FROM AGENT where nom_agent != '' or nom_agent is not null ";
        $res = mysql_query($query,$db); print $query;
        $ligne = mysql_num_rows($res);

        while($row = mysql_fetch_array($res))
        {
        $enfant =0;
        $enfant_2 = 0;
        $adulte = 0;
        $nom = $row[3];
        $prenom = $row[4];
        $date_dep_parent = $row[21];//21 est date_dep_souh dans la table
        $date_dep_parent=substr($date_dep_parent,8,2)."-".substr($date_dep_parent,5,3).substr($date_dep_parent,0,4) ;

        //Determination de Monsieur ou Madame
        if($row[6] == "M")
        {

        $adulte = $adulte+1;
        }
        else
        {

        $adulte = $adulte+1;

        }

        $req = "SELECT * FROM CONJOINT WHERE num_agent = $row[0]";
        $resu = mysql_query($req,$db);

        $rang = mysql_fetch_row($resu);

        if ($rang[1] != ''){
        $adulte = $adulte+1;
        }

        $req = "SELECT * FROM ENFANT WHERE num_agent = $row[0]";
        $resu = mysql_query($req,$db);
        $nbLigne = mysql_num_rows($resu);

        while($rang = mysql_fetch_row($resu))
        {
        $date_nais= $rang[4];
        $date_dep= $rang[5];

        //---------------------------Recuperation d'un ecart de 2 ans------------------------------------------------------------
        $ecart2 = mktime(0,0,0,1,1,1972);

        //-----------------Determination de la date de naissance au format PHP-----------------------------------------
        list($aNAIS_temp,$mNAIS_temp,$jNAIS_temp) = explode("-",$date_nais);
        list($aDEP_temp,$mDEP_temp,$jDEP_temp) = explode("-",$date_dep);

        //------------------On enlève les zéros inutiles--------------------------------------------------------------------
        $mNAIS = (int) $mNAIS_temp;
        $jNAIS = (int) $jNAIS_temp;
        $aNAIS = (int) $aNAIS_temp;
        $mDEP = (int) $mDEP_temp;
        $jDEP = (int) $jDEP_temp;
        $aDEP = (int) $aDEP_temp;

        //---------------------on calcule les nombre de secondes écoulées------------------------------------------------------
        $NAIS = mktime(0,0,0,$mNAIS,$jNAIS,$aNAIS);
        $DEP = mktime(0,0,0,$mDEP,$jDEP,$aDEP);

        //ON TESTE SI L'ENFANT A MOINS DE DEUX ANS AU MOMENT DU DEPART
        if($DEP - $NAIS < $ecart2)
        {

        $enfant_2 = $enfant_2+1;

        }
        else
        {

        $enfant = $enfant+1;

        }

        ?>

        <tr>

        <td class="celtab"><?php print $date_dep_parent ?></td>
        <td class="celtab"><?php print $adulte ?></td>
        <td class="celtab"><?php print $enfant ?></td>
        <td class="celtab"><?php print $enfant_2 ?></td>

        </tr>
        <?
        }
        }
        }

        else
        {
        if ($liste =="Vol")
        {
        //requete pour la destination
        $query = "SELECT libelle_aero FROM AEROPORT_DEP WHERE libelle_aero = '$liste2'";
        $result = mysql_query($query,$db);

        $val = mysql_fetch_row($result);
        $query = "SELECT * FROM AGENT where nom_agent != '' or nom_agent is not null ";
        $res = mysql_query($query,$db);
        $ligne = mysql_num_rows($res);

        while($row = mysql_fetch_array($res))
        {
        $enfant =0;
        $enfant_2 = 0;
        $adulte = 0;
        $nom = $row[3];
        $prenom = $row[4];
        $date_dep_parent = $row[21];//21 est date_dep_souh dans la table
        $date_dep_parent=substr($date_dep_parent,8,2)."-".substr($date_dep_parent,5,3).substr($date_dep_parent,0,4) ;

        //Determination de Monsieur ou Madame
        if($row[6] == "M")
        {

        $adulte = $adulte+1;
        }
        else
        {

        $adulte = $adulte+1;

        }

        $req = "SELECT * FROM CONJOINT WHERE num_agent = $row[0]";
        $resu = mysql_query($req,$db);

        $rang = mysql_fetch_row($resu);

        if ($rang[1] != ''){
        $adulte = $adulte+1;
        }

        $req = "SELECT * FROM ENFANT WHERE num_agent = $row[0]";
        $resu = mysql_query($req,$db);
        $nbLigne = mysql_num_rows($resu);

        while($rang = mysql_fetch_row($resu))
        {
        $date_nais= $rang[4];
        $date_dep= $rang[5];

        //---------------------------Recuperation d'un ecart de 2 ans------------------------------------------------------------
        $ecart2 = mktime(0,0,0,1,1,1972);

        //-----------------Determination de la date de naissance au format PHP-----------------------------------------
        list($aNAIS_temp,$mNAIS_temp,$jNAIS_temp) = explode("-",$date_nais);
        list($aDEP_temp,$mDEP_temp,$jDEP_temp) = explode("-",$date_dep);

        //------------------On enlève les zéros inutiles--------------------------------------------------------------------
        $mNAIS = (int) $mNAIS_temp;
        $jNAIS = (int) $jNAIS_temp;
        $aNAIS = (int) $aNAIS_temp;
        $mDEP = (int) $mDEP_temp;
        $jDEP = (int) $jDEP_temp;
        $aDEP = (int) $aDEP_temp;

        //---------------------on calcule les nombre de secondes écoulées------------------------------------------------------
        $NAIS = mktime(0,0,0,$mNAIS,$jNAIS,$aNAIS);
        $DEP = mktime(0,0,0,$mDEP,$jDEP,$aDEP);

        //ON TESTE SI L'ENFANT A MOINS DE DEUX ANS AU MOMENT DU DEPART
        if($DEP - $NAIS < $ecart2)
        {

        $enfant_2 = $enfant_2+1;

        }
        else
        {

        $enfant = $enfant+1;

        }

        ?>

        <tr>

        <td class="celtab"><?php print $date_dep_parent ?></td>
        <td class="celtab"><?php print $adulte ?></td>
        <td class="celtab"><?php print $enfant ?></td>
        <td class="celtab"><?php print $enfant_2 ?></td>

        </tr>
        <?
        }
        }
        }
        }

        ?>
        </table>
        </form>
        </body>
        </html>

        résultat j'ai tout les agents de la base qui est faut!!!

        merci pour une réponse