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. 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
    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. 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