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. Contributeur
      Bonne continuation !
      A la prochaine peut être (On s'est déjà croisé pas mal de fois ici !)

      Cordialement
      a70m
      1. Merci. ;)
    2. 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
        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
        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. 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. 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. 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. Contributeur
                A quoi correspondront ces "value1" et "value2" ?

                Peut-être y'aurait-il un autre moyen de coder tout ça :)