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 :

[Tableaux] liste <select> qui se positionne sur variable


Sujet :

Langage PHP

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut [Tableaux] liste <select> qui se positionne sur variable
    Bonsoir,

    Je voulais savoir si quelqu'un savait comment je pourrais faire afin que ma liste selectionne le champ d'une variable, j'ai testé plusieurs possibilités et je n'y arrive pas :p
    Je pensais faire un <select name='TypeVehicule' selected='$Vehicule'> mais ca fonctionne pas ( ca aurait été trop facile peut-être ).
    J'imagine qu'il doit bien avoir une méthode pas trop complexe qui permette de faire séléctionné la ligne voulu sur le <select> à l'aide d'une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $Vehicule=$ligne["vehicule"];
     
     
    <td>							
    <select name='TypeVehicule'>
    <option value='1'>voiture</option>
    <option value='2'>moto</option>
    <option value='3'>scooter</option>
    </select>
    </td>

  2. #2
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    c'est dans le option à choisir qu'il faut rajouter l'attribut SELECTED='selected'.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut
    Mais vu que j'ai 3 <option> si je met un selected dans une des option, ca va me selectionner celle dans la quelle j'aurais mis le selected non ?

    Moi faut vraiment que ca prenne le value=1 si la variable=1 par exemple

  4. #4
    Membre averti
    Profil pro
    aaaa
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aaaa

    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Par défaut
    Salut,

    Je pense que c'est ce que tu recherches... C'est fait à la va-vite :

    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
    17
    18
     
    // Dans ce tableau, les items de ton select
    $itemsSelect = array("1" => "voiture", "moto", "scooter");
    // Clé de l'item sélectionné
    $vehicule=3;
     
    // Construction du select
    echo "<select name=\"TypeVehicule\">";
    foreach($itemsSelect as $cleItem => $labelItem) {
    	if($vehicule == $cleItem) {
    		// Si $vehicule == $cleItem => on sélectionne
    		echo "<option value=\"".$cleItem."\" selected=\"selected\">".$labelItem."</option>";
    	} else {
    		// Sinon, on ajoute l'item simplement
    		echo "<option value=\"".$cleItem."\">".$labelItem."</option>";
    	}
    }
    echo "</select>";

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par chicho
    Mais vu que j'ai 3 <option> si je met un selected dans une des option, ca va me selectionner celle dans la quelle j'aurais mis le selected non ?
    C'est pas ce que tu veux faire
    Faut réexpliquer alors parce que là je vois pas autre chose

  6. #6
    Membre averti
    Profil pro
    aaaa
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aaaa

    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Par défaut
    Citation Envoyé par Amara
    c'est dans le option à choisir qu'il faut rajouter l'attribut SELECTED='selected'.
    Si, c'est ce qu'il veut faire, mais il veut attribuer la balise selected="selected" dynamiquement en fonction de la valeur de la variable... Dumoins, c'est ce que je comprends...

  7. #7
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Citation Envoyé par BlacKou
    Si, c'est ce qu'il veut faire, mais il veut attribuer la balise selected="selected" dynamiquement en fonction de la valeur de la variable... Dumoins, c'est ce que je comprends...
    Bah oui ça me semblait évident vu comment sa question était tournée, j'avais pas précisé qu'il fallait faire un test comme ty le proposes mais ça me paraissait couler de source.

    Juste une (petite) remarque une façon un peu plus élégante de procéder :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "<option value=\"".$cleItem."\"";
    // Si $vehicule == $cleItem => on sélectionne               
    if($vehicule == $cleItem)
          echo  " selected=\"selected\"";
    echo ">".$labelItem."</option>";

  8. #8
    Membre averti
    Profil pro
    aaaa
    Inscrit en
    Mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aaaa

    Informations forums :
    Inscription : Mai 2005
    Messages : 18
    Par défaut
    Bien vu

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut
    Merci beaucoup, mais je comprends rien au code.
    Certes ca peut etre tout facile a vos yeux, mais je ne suis sur le php depuis longtemps et mettre ce code dans mon code actuelle c'est courir à mon suicide ^^


    Par contre si je peux me permettre, je voulais savoir si je peux avec un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <select name='Vehicule'>
    <option value='0'>tous</option>
    <option value='1'>Voiture</option>
    <option value='2'>Moto</option>
    <option value='3'>Scooter</option>
    <option value='4'>autres</option>
    </select>
    Faire que quand je select "tous" je cherche tout grâce à un if du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Varvehicule = $_POST['Vehicule'];
     
    if ( $Varvehicule == '0' )
    {
    $Varvehicule == 'TOUS LES CHAMPS'
    }

  10. #10
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Oui c'est faisable.

    Sinon l'idée du code donné plus haut c'est juste de tester pendant la construction de ta liste si l'option que tu créés doit être celle sélectionnée par défaut, si c'est le cas tu ajoutes le selected à cet option, dans le cas contraire tu ne le mets pas.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut
    Bonjour,

    Pourriez-vous me dire comment faire pour qu'une variable prennent plusieurs champs et non le premier, car quand je tape ce code, ma variable prendre juste le '1' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($Varvehicule=='0')
    {
    $Varvehicule='1'&&'2'&&'3'&&'4';
    }
    C'est toujours suivant mon select plus haut, le 1, 2, 3 et 4 sont les <option> à choix. Malheureusement quand je fais ce petit if il me prend juste le 1 et non le 2, 3 et 4.

    Voila pour ce petit if tout embetant a mes yeux ^^

  12. #12
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 30
    Par défaut
    Question en réponse à ta question (typiquement français parait-il):
    apres avoir vérifié ton select, tu vas chercher les données qui vont bien dans une table de données?
    si c'est le cas tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if($Varvehicule=='0')
    {
    // connexion bdd
     $query = SELECT * FROM table WHERE TypeVehicule='voiture' AND  TypeVehicule='moto', ... ;
    // reste de la requête
    }

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 57
    Par défaut
    Citation Envoyé par zobsystem
    Question en réponse à ta question (typiquement français parait-il):
    apres avoir vérifié ton select, tu vas chercher les données qui vont bien dans une table de données?
    si c'est le cas tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if($Varvehicule=='0')
    {
    // connexion bdd
     $query = SELECT * FROM table WHERE TypeVehicule='voiture' AND  TypeVehicule='moto', ... ;
    // reste de la requête
    }

    Au fait c'est bizarre, car quand je met plusieurs TypeVehicule il ne m'affiche rien, alors que quand je met TypeVehicule='moto' juste par exemple, ben la ca va marcher et il va m'afficher la recherche avec "moto". Je suis vraiment proche du bute je le sents :p

    Sinon si je met des "or" à la place des "and" j'ai tout qui s'affiche en quadruple au moins

  14. #14
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Elle a quelle tronche ta requête parce que si c'est comme au-dessus avec des virgules c'est pas la bonne syntaxe...

Discussions similaires

  1. Userform avec liste de selection qui évolue
    Par p2zouille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/09/2012, 15h39
  2. Réponses: 4
    Dernier message: 26/02/2010, 17h30
  3. [Tableaux] Liste déroulante : selected
    Par ldims24 dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2007, 09h25
  4. menu qui se positionne mal
    Par peck dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/12/2004, 23h24
  5. largeur liste de selection
    Par Anonymous dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/09/2004, 17h57

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