Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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
Lassé par la pub ? Créez un compte

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...

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?

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 ^^
Lassé par la pub ? Créez un compte
Tom's guide dans le monde