[RESOLU] Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Eléphanteau du PHP | 12 Messages

01 mars 2020, 18:22

Bonjour la communauté !

Je continue ma gestion (basique ;-)) de mes DVD.

Cette page est un extrait d'un script permettant de modifier un enregistrement de ma table.

Pour ce là, je lis au préalable via un select l'enr. de ma table et affiche les champs de la table ds les différents champs de mon form. (Cela marche impec).

J'ai utilisé pour le champ 'Genre' une liste déroulante avec en dur les libellés correspondants: Thriller,SF, Comédie,...

Q1/ Ma question est: comment fait-on pour afficher dans le champ 'Genre' le libellé qui est déjà enregistré en base. ??

Est-ce que , par ex, je peux rajouter ds le select un value de la donnée en base (écho $donnees....)? (Rf. Script)

Q2./ Peut-on rendre le champ "saisissable" si l'on saisit un libellé qui ne figure pas ds la liste ?.

(Ex: on rajoute au préalable un libellé "Autre" et le fait de cliquer dessus rendrait saisissable le champ (comme un input)

Je me prends pas mal la tête là dessus en ce moment, j'ai recherché sur le net mais ça ne correspond pas tjrs à ce que je souhaiterais.

Parfois , il y a peut-être des solutions avec Javascript mais je préférais éviter si possible ;-))

Actuellement, je n'ai pas les moyens de tester (pas de config) mais je commencerais à tester début Sem. Prochaine.

Merci d'avance Pr vos conseils.
[1


 
 
 
<form class="formulaire" method="post" action="modif.php" >
 
          <div>
                <label for="Titre">.Titre : </label>
                <input type="text" id="titre" name="Titre" value="<?php echo $donnees['Titre'] ?>" size="30" required>
                <label for="Num">      .Num : </label><input type="number" id="num" name="Num" size="3" readonly="readonly"
                 value="<?php echo $donnees['Num'] ?>" />
                <br/> <br/>
          </div>
 
          <div>
                <label for="Genre">.Genre : </label>
                <select name="Genre" id="Genre" value="<?php echo $donnees['Genre'] ?>">
                      <option value="Thriller">Thriller</option>
                      <option value="Comédie">Comedie</option>
                      <option value="SF">S.F</option>
                      <option value="Aventures">Aventures</option>
                </select>
                <br/><br/>
 
          </div>
          <div>
                <label for="Duree">.Duree : </label>
                <input type="text" id="duree" name="Duree" value="<?php echo $donnees['Duree'] ?>" size="5"   maxlength="5">
                <br/><br/>
          </div>
          <div>
                <label for="Annee">.Annee : </label>
                <input type="number" id="annee" name="Annee" value="<?php echo $donnees['Annee'] ?>" size="4" maxlength="4">
                <br/>
          </div>
          <div id="Valid">
                <button type="submit" name="Valid" value="OKValid" style="padding : 15px"> VALIDER </button>
          </div>
      
      </form>PHP]

Eléphanteau du PHP | 12 Messages

01 mars 2020, 18:30

Désolé pour la "belle couleur blanche du code ;-)))PHP, mais je fais depuis un portable et ça bouge!,

Eléphanteau du PHP | 12 Messages

02 mars 2020, 17:27

En fait, je viens de tester mais ca ne fonctionne pas :-(( La donnée en base ne s'affiche tjrs pas ds le champ.
J'ai modifié le script (voir ci dessous) mais meme pb...je désespère…
  <form class="formulaire" method="post" action="modif.php" >

          <div>
                <label for="Titre">.Titre : </label>
                <input type="text" id="titre" name="Titre" value="<?php echo $donnees['Titre'] ?>" size="30" required>
                <label for="Num">      .Num : </label><input type="number" id="num" name="Num" size="3" readonly="readonly"
                 value="<?php echo $donnees['Num'] ?>" />
                <br/> <br/>
          </div>

          <div>
                <label for="Genre">.Genre : </label>
           
                <select name="Genre" id="Genre" >
                       
                   <option value="Thriller" <?php echo ($donnees['Genre'] == "Thriller")?  'selected=="selected"' : '' ?>>Thriller</option>
				   <option value="SF">S.F</option>
                   <option value="Aventures">Aventures</option>
                </select>
                <br/><br/>

          </div>
          <div>
                <label for="Duree">.Duree : </label>
                <input type="text" id="duree" name="Duree" value="<?php echo $donnees['Duree'] ?>" size="5"   maxlength="5"> 
                <br/><br/>
          </div>
          <div>
                <label for="Annee">.Annee : </label>
                <input type="number" id="annee" name="Annee" value="<?php echo $donnees['Annee'] ?>" size="4" maxlength="4">
                <br/>
          </div>
          <div id="Valid">
                <button type="submit" name="Valid" value="OKValid" style="padding : 15px"> VALIDER </button>
          </div>
	 
      </form>

Eléphanteau du PHP | 12 Messages

03 mars 2020, 11:48

Tjrs pas de conseils ;-))

Avatar du membre
Mammouth du PHP | 1204 Messages

03 mars 2020, 11:54

Q1/ Ma question est: comment fait-on pour afficher dans le champ 'Genre' le libellé qui est déjà enregistré en base. ??

Est-ce que , par ex, je peux rajouter ds le select un value de la donnée en base (écho $donnees....)? (Rf. Script)
Il faut ajouter un attribut selected sur l'option sélectionnée. https://www.w3schools.com/tags/att_option_selected.asp
<option value="Thriller" <?php echo $genre == 'Thriller' ? 'selected' : ''; ?>>Thriller</option>
A mettre bien entendu sur chacune des options du select avec la bonne chaine en test et avec la variable $genre alimentée comme il faut.

Q2./ Peut-on rendre le champ "saisissable" si l'on saisit un libellé qui ne figure pas ds la liste ?.

(Ex: on rajoute au préalable un libellé "Autre" et le fait de cliquer dessus rendrait saisissable le champ (comme un input)
Non, tu ne peux pas rendre un select saisissable. Au mieux avec un minimum de javascript tu peux afficher masquer un input pour saisir cette valeur si l'option sélectionnée du select est Autre.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphanteau du PHP | 12 Messages

03 mars 2020, 13:08

Merci bcp Saian pr tes réponses !
Pour la Q1, j'avais déjà testé cette méthode mais ça n'avait pas fonctionné, peut-être me suis je planté ds l' écriture.

Eléphanteau du PHP | 12 Messages

03 mars 2020, 18:03

Pour la Q2, je viens de trouver DATALIST qui pourrait être une solution...(à tester)

Avatar du membre
Mammouth du PHP | 1204 Messages

03 mars 2020, 18:07

Ok, en effet c'est un tag html5, ça à l'air d'être tout à fait ce que tu veux et d'être compatible avec les principaux navigateurs modernes. Je ne le connaissais pas malgré mes presque 20 ans de développement web. ^^
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^

Eléphanteau du PHP | 12 Messages

04 mars 2020, 13:23

Comme quoi on n'arrête jamais de découvrir de nouveaux trucs....;-)) , c'est en faisant des recherches sur le net que je suis tombé dessus...(peut-être un peu par hasard )