Liste déroulante dynamique

Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - Modifié par labourette le 25/01/2014 à 19:15
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 26 janv. 2014 à 23:27
Bonjour,

Je voulais mettre un select dans mon formulaire pour gérer les categories des membres issu de ma BDD
Ca ne fonctionne pas je ne sais pas pourquoi, si vous pouvez me donner quelques infos s'ils vous plait ?
En vous remerciant beaucoup pour votre aide
  echo '<select size=1 name="cat">'."\n"; 
  echo '<option value="-1">Choisir un résultat<option>'."\n"; 
   
$resultat = $bdd->query("SELECT tb_categorie_statut.id_categorie_statut, tb_categorie_statut.categorie_statut FROM tb_categorie_statut");
  $donnees = mysql_query($sql); 
   
  while ($resultat = mysql_fetch_objet($donnees)){ 
    echo '<option value="'.$resultat[0].'">'.$resultat[1]; 
    echo '</option>'."\n"; 
  } 
  echo '</select>'."\n"; 


2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 janv. 2014 à 22:56
Bonsoir, voir commentaires dans le code

echo '<select name="cat">'."\n"; 
  echo '<option value="-1">Choisir un résultat</option>'."\n"; //la balise de fermeture option il te manquait le /
   
$resultat = $bdd->query("SELECT tb_categorie_statut.id_categorie_statut, tb_categorie_statut.categorie_statut FROM tb_categorie_statut");
  //$donnees = mysql_query($sql); 
 //$bdd->query soumet la requette il me semble
//esayes avec mysql_fetch_assoc c'est plus "parlant"  
  while ($resultat = mysql_fetch_assoc($resultat)){ 
    echo '<option value="'.$resultat['id_categorie_statut'].'">'.$resultat['categorie_statut']; 
    echo '</option>'."\n"; 
  } 
  echo '</select>'."\n";


essayes aussi avec PDO mysql c'est plus sécurisé !
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
26 janv. 2014 à 23:27
Salut,

Essaye d'organiser ton code de telle façon que les traitements se passent au début de la page (avant le DOCTYPE), et tout ce qui est affichage (echo) + html entre la balise body.

Essayes de ne pas mélanger PDO et mysql, et vu que les fonctions mysql seront bientôt obsolète, alors mieux vaut opter pour PDO.

Exemple :
<?php
$resultat = $bdd->query('SELECT tb.id_categorie_statut AS id, tb.categorie_statut  AS statut FROM tb_categorie_statut tb');

$options = '<option value="-1">Choisir un résultat</option>';
while($donnees = $resultat->fetch()) {
    $options .= '<option value="' . $donnees['id'] . '">' . $donnees['statut'] . '</option>';
}
?>

<!DOCTYPE html>
<html>
<head>
</head>

<body>
  <form>
    <select name="cat">
      <?php echo $options; ?>
    </select>
  </form>
</body>
</html>

0