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

Résolu
oscarwilde -  
 oscarwilde -
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>


A voir également:

3 réponses

Elsyfiryos Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   11
 
Salut,
Peux tu me montrer ton script de formulaire ?
0
oscarwilde
 
  <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   Statut Membre Dernière intervention   11
 
En fait je voulais surtout la partie de ta liste déroulante xD
0
oscarwilde
 
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   Statut Membre Dernière intervention   11
 
exact excuse je n'avais pas vu ^^
0
Elsyfiryos Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   11
 
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
oscarwilde
 
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