Page 1 sur 2

Liste deroulante dynamique avec base MYSQL

Posté : 20 sept. 2011, 15:31
par Mirrix
Bonjour

Alors voila, j'ai une base de donnée avec une table. Cette table possède plusieurs champs et j'aimerai faire plusieurs liste deroulante, l'une dependant de la precedante. Les données de la liste deroulante sans a prendre dans la base de donnée.

J'aimerais savoir comment faire, car j'ai regardé partout sur le net et a chaque fois c'est une base de donnée avec 2 tables, pas une seule.
Peut etre que c'est plus facile dans mon cas mais j'ai pas trouvé.

Merci d'avance.

PS : Voila mon code pour le moment :

Code : Tout sélectionner

<!-- Liste deroulante MYSQL --> <FORM method="post" action="cible2.php"> <SELECT name="liste_materiel"> <?php $host = "127.0.0.1"; $user = "Benoit"; $pass = "mikrou"; $bdd = "config_reseaux"; // connexion $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter"); $db = mysql_select_db("$bdd") or die("Impossible de se connecter"); if (mysql_connect ($host,$user,$pass)) { echo 'Connexion réussie'; echo '<br>'; } else { echo 'Connexion impossible...'.mysql_error(); echo '<br>'; } $requete2="SELECT DISTINCT type_materiel FROM bdd"; $result2=mysql_query($requete2); while ($ligne=mysql_fetch_array($result2)) { echo '<OPTION VALUE="'.$ligne["type_materiel"].'">'.$ligne["type_materiel"].'</OPTION>'; } ?> </SELECT> <input type="submit" value="Valider" /><br /> </FORM>
Apres en cliquant sur valider j'ouvre une nouvelle page similaire ou il y le meme code sauf que je change la selection dans ma base de donnée

Code : Tout sélectionner

<!-- Liste deroulante MYSQL --> <FORM method="post" action="cible2.php"> <SELECT name="liste_lieu"> <?php $host = "127.0.0.1"; $user = "Benoit"; $pass = "xxxx"; $bdd = "config_reseaux"; $liste_materiel = $_POST["liste_materiel"] ; // connexion $cnx = mysql_connect($host,$user,$pass) or die("Impossible de se connecter"); $db = mysql_select_db("$bdd") or die("Impossible de se connecter"); if (mysql_connect ($host,$user,$pass)) { echo 'Connexion réussie'; echo '<br>'; } else { echo 'Connexion impossible...'.mysql_error(); echo '<br>'; } $requete2="SELECT DISTINCT lieu FROM bdd WHERE type_materiel = '$liste_materiel'"; $result2=mysql_query($requete2); while ($ligne=mysql_fetch_array($result2)) { echo '<OPTION VALUE="'.$ligne["lieu"].'">'.$ligne["lieu"].'</OPTION>'; } ?> </SELECT> <input type="submit" value="Valider" /><br /> </FORM>

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 09:01
par Mirrix
Personne n'a d'idées ?

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 11:20
par Mazarini
Bonjour,

A première vue, ca devrait marché. Quel est le problème ?

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 11:22
par moogli
salut,

tu ne sais pas exploiter les donnée d'un formulaire => http://www.phpdebutant.org/article56.php ou http://www.lephpfacile.com/cours/8-recu ... ormulaires

lorsque tu aura corrigé cela ça ira :)

@+

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 14:11
par Mirrix
Nan mais la tel quel ca marche mais ce que je voudrais c'est ne pas avoir a recharger une page avec un nouveau menu déroulant, je voudrais que toute les listes déroulantes soient sur la même page et que le contenu de la deuxième varie en fonction de ce que j'ai tapé dans la première.

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 14:15
par Mirrix
salut,

tu ne sais pas exploiter les donnée d'un formulaire => http://www.phpdebutant.org/article56.php ou http://www.lephpfacile.com/cours/8-recu ... ormulaires

lorsque tu aura corrigé cela ça ira :)

@+
Je vois pas ce que tu veux dire ou alors je vois pas ou sont les erreurs :p

Re: Liste deroulante dynamique avec base MYSQL

Posté : 21 sept. 2011, 16:25
par Cyrano
... ce que je voudrais c'est ne pas avoir a recharger une page avec un nouveau menu déroulant, je voudrais que toute les listes déroulantes soient sur la même page et que le contenu de la deuxième varie en fonction de ce que j'ai tapé dans la première.
Solution ici => faq-tutoriels/formulaires-listes-deroul ... t4562.html

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 09:03
par Mirrix
Mais la ya plusieurs table dans la base, moi j'en ai qu'une, est ce quand même possible ?

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 09:51
par Cyrano
Pas de soucis : ce qui va changer, ce sera la requête pour établir la seconde liste.

Il est vrai que le tuto se base sur plusieurs tables, mais il pourrait aussi bien y en avoir une douzaine, ça n'a que peu d'importance. Ce qu'il faut comprendre, c'est dans le déroulement du code à quel moment tu dois récupérer le contenu de la seconde liste et comment tu dois donc formuler ta requête.

Essaye de distinguer les différents composants qui forment le tout : la gestion de l'évènement onchange et la collecte des données selon la valeur récupérée, cette dernière dépendant de la première.

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 13:00
par zeus
Modération :
Pour avoir plus de réponses, le sujet est déplacé dans une forum plus adapté

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 14:31
par Mirrix
Le mieux a ton avis c'est en php pur ou avec du javascrpit (ou même AJAX), ou plutôt lequel serait a ma porter pour le transposer correctement ?

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 14:36
par Cyrano
Ça va dépendre un peu de ton aisance avec le JavaScript et/ou avec le PHP.

Là, tu pars d'une seule table avec, à priori, un nombre de lignes de données relativement limité. Donc la version JavaScript sans Ajax serait mon choix personnel : plus rapide puisqu'aucun échange avec le serveur n'est plus nécessaire une fois la page chargée, et en construisant ta page avec la liste au format JSON, ce sera directement exploitable en JavaScript. Mais il faut pour cela que tu sois à l'aise avec la manipulation de listes en objets JavaScript. Ceci étant, rien ne t'empêche d'apprendre le cas échéant ;)

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 14:39
par Mirrix
Il y a toujours le probleme a savoir si le visiteurs aura Java. Car je fais ca pour mon boulot, ca sera un site hebergé en interne, j'espere que les PC qui iront sur le site auront Java d'installé

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 14:56
par Cyrano
Attention, Java n'est pas JavaScript, voir le post-it que j'avais publié il y a pas mal de temps dans ces forums.

Par ailleurs, à moins de tomber sur un fondu qui naviguerait encore avec Internet Explorer 3 ou encore pire, tous les navigateur actuels supportent le JavaScript. Là où le problème pourrait se poser, ce serait dans le cas de navigateurs alternatifs pour personnes souffrant de déficiences visuelles ou motrices. Dans ce cas, la version 100% PHP sera préconisée.

Donc la solution dans ce cas, c'est de monter la version 100% PHP et ensuite, une fois que c'est bien fonctionnel, implémenter le JavaScript qui ne fonctionnera que si le JavaScript est supporté mais sans empêcher le fonctionnement pour les autres. Ces dernier auront juste un moins moins de rapidité et de souplesse mais ils pourront utiliser l'application.

Re: Liste deroulante dynamique avec base MYSQL

Posté : 22 sept. 2011, 15:10
par Mirrix
Ok ok.

Par contre je m'en sors pas du tout avec le code php pour la version Javascript, moi j'ai pas d'indices dans ma table du coup je suis totalement perdu dans le code :p