IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Condition if pour un Selected dans une liste


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Condition if pour un Selected dans une liste
    Bonsoir à tous,

    Encore moi, je ne comprends vraiment rien à la syntaxe php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    // 2eme formulaire
    echo "<FORM method=\"post\">";
    	echo "<select name=\"choix1\">";
    	echo "<option>toto</option>";
    	echo "<option" .if ($_POST['choix1']=="titi") 'selected="selected"' ." >titi</option>";
    	// echo "<option>titi</option>";
    	echo "<option>tutu</option>";
    	echo "</select>";
    	echo "<p>";
    echo "<input name=\"submit\" type=\"submit\" value=\"OK\" />";
    echo "</form>"
    ?>
    J'essaie de mettre un if pour selectionner l'option si la variable est égale à l'option, mais je ne comprends pas comment intégrer le test.
    Je ne sais pas s'il faut concaténer ou faire autre chose.

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Sort ton if du echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<option";
    if ($_POST['choix1']=="titi") echo 'selected="selected"';
    echo ">titi</option>";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonsoir Sabotage,

    Merci pour ta réponse.
    Je l'ai appliqué.
    Maintenant je n'ai plus de message d'erreur.
    Mais je n'ai plus aucun item dans ma liste ...

    Voilà exatement ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    echo "<FORM method=\"post\">";
    	echo "<select name=\"choix1\">";
    	echo "<option"; if ($_POST['choix1']=="toto") echo 'selected="selected"';echo ">toto</option>";
    	echo "<option";	if ($_POST['choix1']=="titi") echo 'selected="selected"';echo ">titi</option>";
    	echo "<option";	if ($_POST['choix1']=="tutu") echo 'selected="selected"';echo ">tutu</option>";
    	echo "</select>";
    	echo "<p>";
    echo "<input name=\"submit\" type=\"submit\" value=\"OK\" />";
    echo "</form>"
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il manque un espace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ' selected="selected"'
    Par contre repeter des lignes comme tu le fais est atroce, il faut utiliser des boucles et des tableaux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    Merci pour ta réponse.

    Je vais voir comment utiliser un tableau et faire une boucle.
    Mais en attendant avec ou sans espace, toujours rien dans ma liste ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    echo '<form method="post">';
    	// array des choix et valeurs possibles
    	$arraychoix = array('toto','titi','tutu');
    	$arrayvalue = array('toto','titi','tutu'); // (les valeurs peuvent etre differentes des choix affichés)
    	echo '<select name="choix1">';
    	for($i=0;$i<sizeof($arraychoix);$i++)
    	{
    		if($_POST['choix1']==$arrayvalue[$i]) { $selectchoix=' selected="selected"'; } else { $selectchoix=''; }
    		echo '<option value="'.$arrayvalue[$i].'"'.$selectchoix.'>'.$arraychoix[$i].'</option>';
    	}
    	echo '</select>';
    	echo '<br />';
    echo '<input name="submit" type="submit" value="OK" />';
    echo '</form>';
    ?>
    Garde les ' pour PHP et les " pour html.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Merci pour la réponse. L'exemple de boucle est parfait pour moi.
    Cependant, je n'ai pas tres bien compris le "les valeurs peuvent etre differentes des choix affichés"
    Dans le cas présent, elles sont forcément identiques puisque qu'on compare ce qui est affiché dans la liste avec ce qui est selectionné ...

  8. #8
    Invité
    Invité(e)
    Par défaut
    "les valeurs peuvent etre differentes des choix affichés"
    "choix affichés" = les textes qui apparaissent dans la liste déroulante
    "valeurs" = les valeurs renvoyées par le formulaire

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    La liste affiche :	valeur renvoyée :
    banane			1
    pomme			2
    ananas			3
    ...			...
    On aurait alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	$arraychoix = array('banane','pomme','ananas','...');
    	$arrayvalue = array('1','2','3','...');

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    Merci pour la précision. En fait tu as répondu avant meme que je me pose la question
    En fait, dans mon cas le test sur le choix était suffisant. Mais on peut affecter une valeur au choix.
    Merci encore.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Connaitre le nombre de selections dans une liste deroulante multiple
    Par ikeaboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2006, 08h50
  2. Réponses: 1
    Dernier message: 15/06/2006, 18h01
  3. probleme de selection dans une liste deroulant
    Par biboulou dans le forum IHM
    Réponses: 5
    Dernier message: 04/05/2006, 12h16
  4. [Selected]Dans une liste déroulante
    Par ozzmax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/11/2005, 19h18
  5. Réponses: 8
    Dernier message: 05/05/2004, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo