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

        Cordialement
        a70m
        1. Merci. ;)
      2. 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 :)
              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 !