Se connecter / S'enregistrer
Votre question

[php] liste déroulante et base de données

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
18 Septembre 2006 12:06:36

Bonjour tout le monde

Voilà j'ai fait une liste déroulante qui va chercher ses valeurs dans une base de données :

mysql_connect("localhost","root","datex") or die("erreur de connexion au serveur");
mysql_select_db("datex") or die("erreur de connexion a la base de donnees");
$query = "SELECT categorie FROM produit group by categorie";
$result = mysql_query($query);
while($row = mysql_fetch_row($result)){
echo "<option>";
echo "$row[0]";
echo "</option>";
}

Mon problème est d'attribuer à chaque valeur se trouvant dans la liste déroulante un lien qui emmène vers une nouvelle page pour chaque valeur.

Merci d'avance pour votre aide

Lanysteph

Autres pages sur : php liste deroulante base donnees

18 Septembre 2006 12:08:36

Il faut passer par un javascipt, du type onclick, sur ta liste déroulante.
Dans ta fonction, tu redirige vers la page qu'il faut.

Vinz, de retour de madagascar !!!
18 Septembre 2006 12:11:17

Le plus simple je pense serait que tu enregistre dans ta base de données la page que tu souhaites avoir pour chacune de tes categorie.
Contenus similaires
19 Septembre 2006 11:40:58

Le plus simple pour éviter de surcharger ta BDD en requete inutile (même si je pense qu'a notre niveau, cela est loin d'etre le cas ^^), serait :
1)Virer cette requete et la remplacer par les éléments pré-défini dans le fichiers HTML... (ou au pire, utiliser un fichier comme stockage des information)
2)Faire un petit code Javascript en plaçant comme le suggère vinz42, onClick="codeJS();" sur chaque option...Si tu ne connais pas le JS, passe par un formulaire...
a c 145 L Programmation
19 Septembre 2006 13:16:55

heu...
  1. <?
  2. mysql_connect("localhost","root","datex" ) or die("erreur de connexion au serveur" );
  3. mysql_select_db("datex" ) or die("erreur de connexion a la base de donnees" );
  4. $query = "SELECT id, categorie FROM produit group by categorie";
  5. $result = mysql_query($query);
  6. echo "<select onchange=\"document.location.href='".$PHP_SELF."?option='+this.options[this.selectedIndex].value;\">\n";
  7. while($row = mysql_fetch_row($result)){
  8. echo "<option value=\"".$row[0]."\">".$row[1]."</option>\n";
  9. }
  10. echo "</select>\n";
  11. ?>

Un truc dans ce genre?
19 Septembre 2006 15:21:52

onClick sur les options serait plus adapté qu'un onChange qui ne réagie QUE lorsque le champs concerné change de contenu...
Ceci veut dire que ici, le 1er élément de la liste doit etre un élément mort qui ne redirige vers rien car si il est actif comme les autres, on ne pourra jamais y accéder...Il faudrait pour cela d'abord changer d'élément avant de resélectionner le 1er élément ce qui restera infaisable car la selection d'un autre élément entrainera la redirection ^^
a c 145 L Programmation
19 Septembre 2006 15:58:18

oui, entièrement d'accord...
Et avec ton onclick, quid de celui qui va dérouler le select en cliquant dans le champ et non pas sur la petite flèche?
match nul?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS