Page 1 sur 1

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

Posté : 01 mars 2020, 18:22
par Jpx1
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]

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 01 mars 2020, 18:30
par Jpx1
Désolé pour la "belle couleur blanche du code ;-)))PHP, mais je fais depuis un portable et ça bouge!,

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 02 mars 2020, 17:27
par Jpx1
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>

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 03 mars 2020, 11:48
par Jpx1
Tjrs pas de conseils ;-))

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 03 mars 2020, 11:54
par Saian
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.

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 03 mars 2020, 13:08
par Jpx1
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.

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 03 mars 2020, 18:03
par Jpx1
Pour la Q2, je viens de trouver DATALIST qui pourrait être une solution...(à tester)

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 03 mars 2020, 18:07
par Saian
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. ^^

Re: Afficher un champ BDD ds le champ se référant à la liste déroulante ?

Posté : 04 mars 2020, 13:23
par Jpx1
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 )