Problème select

Fermé
jer3my59 Messages postés 99 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 8 décembre 2010 - 30 nov. 2009 à 21:43
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 3 déc. 2009 à 18:27
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

9 réponses

jer3my59 Messages postés 99 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 8 décembre 2010 3
1 déc. 2009 à 12:49
up svp
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
1 déc. 2009 à 12:53
Bonjour,

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

Xavier
0
jer3my59 Messages postés 99 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 8 décembre 2010 3
1 déc. 2009 à 12:58
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
1 déc. 2009 à 15:32
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jer3my59 Messages postés 99 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 8 décembre 2010 3
1 déc. 2009 à 18:09
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 déc. 2009 à 21:55
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
2 déc. 2009 à 13:39
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
jer3my59 Messages postés 99 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 8 décembre 2010 3
2 déc. 2009 à 13:57
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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
3 déc. 2009 à 18:27
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