Problème select

Bonjour,

je voudrais faire quelque chose de simple.

<SELECT NAME="moi">
<OPTION VALUE="toi"> toi
<OPTION VALUE="moi"> moi
<OPTION VALUE="lui"> lui
</SELECT>
<SELECT NAME="toi">
<OPTION VALUE="toi"> toi
<OPTION VALUE="moi"> moi
<OPTION VALUE="lui"> lui
<input type="submit" value="Valider" />
</SELECT>

le resultat dans mon .php changera en fonction des NAME.
exemple: <select name="moi" ..... </select et <select name="toi" ......</select>

si dans mon .php je dis

si toi + moi = nous
sinonsi toi + lui = pas nous
sinonsi moi ou lui = pas ok

et bien si je definis dans mon premier select moi et le second toi j'aurais toujours "nous" même si je selectionne toi et lui... comment y remedier ? merci.

ps: vous avez le droit de rire de mon exemple !! :D c'est un petit délire avec un ami que j'aimerai mettre au point et aussi un peu pour progresser :D
Configuration: Linux
Firefox 3.5.5

9 réponses

  1. pour etre plus conforme les balise doivent être en minuscule, et toujours fermées:

    <select name="liste_1">
    <option value="moi">moi</option>
    <option value="toi">toi</option>
    </select>
    <input type="submit" name="valider" value="Valider" />
    
    0
    1. AAH ok !! désolé je commence le php donc je me perdais facilement(à la place de coder mes name avec des "moi" et "toi" dans mon html j'aurais du, dès le début marquer "liste_1" et "liste_2" :)

      merci à xavier et alain.
      0
      1. Et remplace ça :

        <SELECT NAME="toi">
        <OPTION VALUE="toi"> toi
        <OPTION VALUE="moi"> moi
        <OPTION VALUE="lui"> lui
        <input type="submit" value="Valider" />
        </SELECT>

        par ça :

        <SELECT NAME="toi">
        <OPTION VALUE="toi"> toi
        <OPTION VALUE="moi"> moi
        <OPTION VALUE="lui"> lui
        </SELECT>
        <input type="submit" value="Valider" />
        0
        1. non tu n'as pas appliqué ce qu'il t'a dit:
          elseif ($_POST ["toi"] == "moi" && $_POST["lui"]) {

          il faut:

          elseif ($_POST ["toi"] == "moi" &&  $_POST["moi"]=="lui") {


          il faut comparer à chaque fois avec $_POST["name_liste"] == valeur de l'option choisie dans la liste portant le name
          0
          1. Merci de ta réponse xavier ça avance simplement il y a un soucis :x

            imaginons je mets ce code :

            <?php
            if ($_POST["toi"] == "moi" && $_POST["moi"] == "toi") {
            echo "nous";
            }
            elseif ($_POST ["toi"] == "moi" && $_POST["lui"]) {
            echo "pas nous";
            }
            elseif ($_POST ["moi"] =="toi" || $_POST["lui"]) {
            echo "pas ok";
            }
            ?>

            là j'applique strictement ce que tu m'as dis donc dans ma liste si je choisis moi et toi ça fonctionne puisqu'il y a que "toi" et "moi" qui interviennent or moi je veux aussi ce fameux "lui" sans rajouter de liste... il faudrait donc rajouter un "NAME" au select non ? je vois pas vraiment :s (je débute)

            pour mon code html il donne ça :

            <body>
            <form action="onpeutpurienpourmoi.php" method="post">
            <p>
            <SELECT NAME="moi">
            <OPTION VALUE="toi"> toi
            <OPTION VALUE="moi"> moi
            <OPTION VALUE="lui"> lui
            </SELECT>
            <SELECT NAME="toi">
            <OPTION VALUE="toi"> toi
            <OPTION VALUE="moi"> moi
            <OPTION VALUE="lui"> lui
            <input type="submit" value="Valider" />
            </SELECT>
            </p>
            </form>

            </body>

            je ne pense pas qu'il y ai un soucis :) j'ai dû me tromper comme je n'ai pas c/c.

            merci d'avance
            0
            1. OK, je vois le problème.
              Tu confonds en fait le nom de la liste déroulante ("moi" et "toi"), et la valeur qu'elle prend.
              Pour vérifier si la valeur de ta première liste déroulante est "toi", il faut faire le test suivant :
              if ($_POST["moi"] == "toi")

              Ce qui donne donc, pour ton premier test :
              if ($_POST["moi"] == "toi" && $_POST["toi"] == "moi")
                  echo "nous";

              Je te laisse compléter...

              Autre point, concernant ton code html. Je ne sais pas si c'est une erreur dans la copie sur le forum, mais ton bouton (balise <input>) est placé à l'intérieur du deuxième <select>. Il n'y a aucune garantie que le navigateur interprète ça correctement !

              Xavier
              0
              1. bonjour,
                voici le code php

                <?php
                if ($_POST["toi"] && $_POST["moi"]) {
                echo "nous";
                }
                elseif ($_POST ["toi"] && $_POST["lui"]) {
                echo "pas nous.";
                }
                elseif ($_POST ["moi"] || $_POST["lui"]) {
                echo "pas ok";
                }
                ?>
                0
                1. Bonjour,

                  Peux-tu nous donner ton code php actuel pour voir ce qui ne va pas ?

                  Xavier
                  0