Liste déroulante & options récupérées ds BDD

Résolu/Fermé
oscarwilde - 30 avril 2010 à 21:12
 oscarwilde - 30 avril 2010 à 23:48
Bonjour à tous,

je fais actuellement un formulaire comprenant entre aux autres une liste déroulante.

Cette liste déroulante comprend plusieurs options provenant d'une table structurée de la manière suivante : id de l'option en clef primaire (ici id_appreciation, et nom de l'option (texte)(ici Categorie) en deuxième champ.

je souhaite enregistrer le choix de cette liste déroulante après validation du formulaire dans une autre table.

Problème, avec le code suivant, la valeur inscrite dans la table après envoi du formulaire n'est pas le bon champ : il m'enregistre le numéro de l'id (1,2 ou 3) alors que je voudrais le champ Categorie.

Ou est-ce que j'ai m..... selon vous? Ou quelle est la solution?

Merci d'avance.

$query = "SELECT id_appreciation, Categorie FROM appreciation";
$result = mysql_query($query) or die("ERROR");
echo "<select name='frm_select_rubrique'>";
$Selected = 0;
while ($row = mysql_fetch_array($result))
{
  if($Selected == 0)
  {
    echo '
  <option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>
  ';
    $Selected = 1;
  }
  else
  {
    echo '
  <option value="', $row[0], '">', $row[1], '</option>
  ';
  }
}?>
</select>


3 réponses

Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
Modifié par Elsyfiryos le 30/04/2010 à 21:18
Salut,
Peux tu me montrer ton script de formulaire ?
0
  <form action="traitement.php" method="post"> 
	<p>Question 1
            <input type="text" name="texte" />
	</p>
    <p>Question 2 
            <input type="texte" name="url" />
     </p>
     
     <p>
<!--- listedéroulante-->
	  <br/>
      <?php
// connection à la base de données
$connection = mysql_connect("localhost","root","");
$database = mysql_select_db("session");
?>
      <?php 
//recuperation de la rubrique
$query = "SELECT id_appreciation, Categorie FROM appreciation";
$result = mysql_query($query) or die("ERROR");
echo "<select name='frm_select_rubrique'>";
$Selected = 0;
while ($row = mysql_fetch_array($result))
{
  if($Selected == 0)
  {
    echo '
  <option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>
  ';
    $Selected = 1;
  }
  else
  {
    echo '
  <option value="', $row[0], '">', $row[1], '</option>
  ';
  }
}?>
</select>
     </p>
      <p>
          <input type="submit" name="BT_Envoyer" value="Envoyer" />
  </p>
</form>
0
Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
30 avril 2010 à 21:38
En fait je voulais surtout la partie de ta liste déroulante xD
0
Je l'avais donné dans le 1er post ^^

$query = "SELECT id_appreciation, Categorie FROM appreciation";
$result = mysql_query($query) or die("ERROR");
echo "<select name='frm_select_rubrique'>";
$Selected = 0;
while ($row = mysql_fetch_array($result))
{
  if($Selected == 0)
  {
    echo '
  <option value="', $row[0], '" selected="selected">', $row[1], 
    '</option>
  ';
    $Selected = 1;
  }
  else
  {
    echo '
  <option value="', $row[0], '">', $row[1], '</option>
  ';
  }
}?>
</select>
0
Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
30 avril 2010 à 22:26
exact excuse je n'avais pas vu ^^
0
Elsyfiryos Messages postés 83 Date d'inscription dimanche 25 avril 2010 Statut Membre Dernière intervention 12 septembre 2012 11
30 avril 2010 à 23:00
je te donne l'exemple d'un bout de formulaire et d'une de mes confirmation de formulaire espérent que cela puisse t'aider.

formulaire:
	<label for="titre">*Titre:</label>
	<select name="titre" id="titre">
			<option value="rien">   </option>
			<option value="mme">Mme.</option>
			<option value="mlle">Mlle.</option>
			<option value="mr">Mr.</option>
	</select>



confirmation:
$titre=$_POST['titre'];
$titre_valider = null;
if ($titre == 'mme') {$titre_valider='Mme ';}
if ($titre == 'mlle') {$titre_valider='Mlle ';}
if ($titre == 'mr') {$titre_valider='Mr ';}


Bien entendu il faut l'adapter a ce que tu mets dans "value"
Bon c'est une méthode qui peut marcher mais cela dépend combien tu a d'option, si tu en a beaucoup, ce n'est pas la bonne méthode c'est sure ^^.


0
Ok, merci pour cette réponse. j'y avais déjà pensé en fait, mais je trouve que c'est l'usine à gaz pour rien. Doit forcément y avoir une solution.

Mais c'est cool, merci.
0