Input select selected

Résolu
Bonjour à tous,

Mon formulaire de création d'articles offre la possibilité de les modifier, lorsqu'on est administrateur. Donc lorsqu'on clique sur 'modifier l'article' , on se retrouve sur le même formulaire mais avec les champs pré-remplis. Jusque-là c'est okay.

Ca marche pour les input[type="texte"] et le textarea, seulement pour le select je ne sais pas comment procéder.
Quand je récupère les informations, je vais chercher dans ma table, je fais un : $données = mysql_fetch_array($query); pour avoir : $titre = stripslashes(données['titre']); . ( Idem pour les autre champs ! )

Comment dois-je remplir mon : <input select name="values"><option value="value1"></option><option value="value2"></option></select> pour qu'il affiche value1 ou value2 suivant ce qu'il récupère de la table ?

Merci d'avance,
Cordialement.
LelLex.

10 réponses

  1. Ah voilà, très bien a70m !

    Je chercher l'écriture de select="selected" ; car je faisait : selected="$select" et bien sûr ça ne marchait pas. ;)
    1. C'est bon, j'ai trouvé : pour sélectionner un élément d'un <option> ; il faut mettre selected="selected" et non pas select="selected" !

      Merci a70m !
      1. Contributeur
        A quoi correspondront ces "value1" et "value2" ?

        Peut-être y'aurait-il un autre moyen de coder tout ça :)
        1. Contributeur
          Perso, j'utilise ceci sur le panel des utilisateur de mon site, où le niveau d'accès est coché ...

          Et j'avais mis des if dans le <option>

          Je pense que tu as un soucis au niveau du nom de tes variables, vérifie-les bien ;)

          Cordialement
          1. J'ai pas de problèmes de noms de variables, puisque mon navigateur affiche bien, si il retour la value2 :
            <option value="value2" select="selected">value2</option>
          2. Contributeur
            Où est le problème alors ^o) ?
          3. Dans le formulaire, c'est toujours le premier <option> qui est affiché dans <select></select> !
        2. Autrement il y a un autre moyen, mais je ne veux pas le faire ; car c'est trop barbare !

          Du style :
          if($value == '0')
          {
          // Mettre tous les <option>
          }
          else if($value == 'value1')
          {
          // Mettre seulement l'<option> value1
          }
          else if($value == 'value2')
          {
          // Mettre seulement l'<option> value2
          }
          
          1. C'est ce que je faisait déjà :

            $value = données['value'];
            
            <option value="value1" <?php if($value == 'value1') {echo 'select="selected"';} ?>>value1</option>
            ( Idem pour le reste, sauf les valeurs ! )
            


            Donc quand je regarde le code source de la page chargée, avec un article qui avait la value2, j'ai toujours le premier <option> d'affiché, ici : value1 ; alors que j'ai bien :
            <option value="value1" >value1</option>
            <option value="value2" select="selected">value2</option>
            


            Tu es sûr que je dois le mettre là select="selected" ?
            1. Contributeur
              Je crois savoir pourquoi

              A l'ajout de ton article tu auras :

              $select = $_POST['values'] ;


              Ensuite, ta requête :

              select='$select'


              A l'affichage :

              $select_sql = $donnees['select'];


              Et on reprend le bout de code de tout à l'heure : en modifiant le nom de la variable ...

              <input select name="values"> 
              <option value="value1" <?php if($select_sql == "value1") { echo "select='selected'" ; ?>></option> 
              <option value="value2" <?php if($select_sql == "value2") { echo "select='selected'" ; ?>></option> 
              </select> 


              Cordialement
              1. Contributeur
                Bonne continuation !
                A la prochaine peut être (On s'est déjà croisé pas mal de fois ici !)

                Cordialement
                a70m
                1. Merci. ;)
              2. Contributeur
                Salut,

                A l'envoi de ton article, rajoute un paramètre dans ta base de données
                'select' par exemple.

                Dans ta requête tu le rajoutes à l'enregistrement.

                Et à la modif, tu mets un if comme ceci :

                <input select name="values"> 
                <option value="value1" <?php if($select == "value1") { echo "select='selected'" ; ?>></option> 
                <option value="value2" <?php if($select == "value2") { echo "select='selected'" ; ?>></option> 
                </select> 
                


                Cordialement
                Si un jour, l'envie de travailler te prends, assied-toi et attends que ca passe ...
                Les boulets, on ne les aime que dans les quotes ! Merci