Liste option/optgroup dynamique
speed837
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
speed837 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
speed837 Messages postés 18 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je n'arrive pas à trouver de réponse sur le forum de CCM ainsi que sur Google.
Il faudrait que j'arrive à afficher une liste avec des <optgroup> et <option> dynamique
(connectée avec ma base de donnée) . Cette liste est composée de marques de voiture avec leurs modèles adéquats.
Pour ce faire j'ai créée une table exprès, c'est à dire une colonne 'Marque' et une autre colonne 'Modele'. J'aimerai pouvoir mettre les marques dans <optgroup> et suivant la marque se trouvant dans l'<optgroup> mettre les modèles en conséquence>.
Je m'y suis peut être mal pris dès le début mais je ne vois pas comment faire plus simple
(2 colonnes).
Actuellement mon code affiche que les marques tirées de ma base de données, mais elles s'affichent le nombre de fois qu'il y a de modèles.
Exemple :
citroen : modeleA
citroen : modeleB
renault : modeleC
renault : modeleD
renault : modeleE
Avec ces données la dans ma base de données mon code afficherai (en optgroup):
citroen
renault
renault
renault
(Oui qu'une seule fois citroen, je ne sais pourquoi m'enfin s'il me reste que ce détail a régler ça sera pas mal hihi)
Je vous donne mon bout de code :
J'attends vos aides avec impatience, merci d'avance !
Je n'arrive pas à trouver de réponse sur le forum de CCM ainsi que sur Google.
Il faudrait que j'arrive à afficher une liste avec des <optgroup> et <option> dynamique
(connectée avec ma base de donnée) . Cette liste est composée de marques de voiture avec leurs modèles adéquats.
Pour ce faire j'ai créée une table exprès, c'est à dire une colonne 'Marque' et une autre colonne 'Modele'. J'aimerai pouvoir mettre les marques dans <optgroup> et suivant la marque se trouvant dans l'<optgroup> mettre les modèles en conséquence>.
Je m'y suis peut être mal pris dès le début mais je ne vois pas comment faire plus simple
(2 colonnes).
Actuellement mon code affiche que les marques tirées de ma base de données, mais elles s'affichent le nombre de fois qu'il y a de modèles.
Exemple :
citroen : modeleA
citroen : modeleB
renault : modeleC
renault : modeleD
renault : modeleE
Avec ces données la dans ma base de données mon code afficherai (en optgroup):
citroen
renault
renault
renault
(Oui qu'une seule fois citroen, je ne sais pourquoi m'enfin s'il me reste que ce détail a régler ça sera pas mal hihi)
Je vous donne mon bout de code :
$ReponseMarque=mysql_query("SELECT * FROM InfoMateriel WHERE 1"); $Liste=mysql_fetch_array($ReponseMarque); <select name="ListeMarque"> <?php while ($Liste=mysql_fetch_array($ReponseMarque)) { ?> <optgroup label=" <?php echo $Liste['Marque'];?>"> <?php } ?> </select>
J'attends vos aides avec impatience, merci d'avance !
A voir également:
- Liste option/optgroup dynamique
- Liste déroulante excel - Guide
- Tableau croisé dynamique - Guide
- Liste déroulante dynamique en cascade excel - Guide
- Liste code ascii - Guide
- Option d'ergonomie - Guide
5 réponses
Merci d'une réponse aussi rapide !
D'après ce que j'ai compris, le GROUP BY est un moyen de regrouper des informations se trouvant sur plusieurs tables d'un même name ?
Si tel est le cas je ne vois pas comment l'exploiter dans mon problème :x
D'après ce que j'ai compris, le GROUP BY est un moyen de regrouper des informations se trouvant sur plusieurs tables d'un même name ?
Si tel est le cas je ne vois pas comment l'exploiter dans mon problème :x
Non le group by permet de regrouper les informations de la colonne placer après le group by (ici ListeMarque) . Mais le group by ne peux pas s'utiliser avec un select *. J'aurai fait deux requêtes : l'une qui select les marques, et la deuxième qui select les modèles avec dans le where la marque voulue.
Ta solution m'a surement l'air d'être la bonne je l'exploiterai dès demain matin !
Dans la deuxième requête dont tu parles, je vais pouvoir mettre une variable dans la WHERE ?
Car ma liste va être dynamique, c'est à dire possibilité d'ajouter une marque et un modèle.
C'est cet ajout de marque qui me semble poser problème dans la solution avec les deux requêtes que tu as ennoncé :/
Dans la deuxième requête dont tu parles, je vais pouvoir mettre une variable dans la WHERE ?
Car ma liste va être dynamique, c'est à dire possibilité d'ajouter une marque et un modèle.
C'est cet ajout de marque qui me semble poser problème dans la solution avec les deux requêtes que tu as ennoncé :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je cherche depuis ce matin et je suis à cour d'idées.
Mon code actuel est :
Avec ce code j'arrive correctement à afficher dans les <optgroup> qu'une seule fois la marque mais la boucle while que je fais en dessous de cette balise de ne fonctionne pas du tout.
J'ai donc pour le moment une liste de ce type :
---Marque modele---
Citroen
Fiat
Peugeot
Renault
(j'ai rajouté quelques marques afin de mieux visualiser le résultat de mes tests)
Mon code actuel est :
$ResultatSelectionMarque= mysql_query("SELECT DISTINCT Marque FROM InfoMateriel"); ?> <select name="ListeMarquee"> <option value="">---Marque modele---</option> <?php while ($ListeMarque=mysql_fetch_array($ResultatSelectionMarque)) { ?> <optgroup label=" <?php echo $ListeMarque['Marque'];?>"> <?php $RequeteSelectionModele= mysql_query("SELECT 'Modele' FROM 'InfoMateriel' WHERE 'Modele' ='$ListeMarque'"); while ($ListeModele = mysql_fetch_array($RequeteSelectionModele)) { echo '<option value="', $ListeModele['Modele'], '">', $ListeModele['Modele'], '</option>'; echo "aa"; } } ?> </select>
Avec ce code j'arrive correctement à afficher dans les <optgroup> qu'une seule fois la marque mais la boucle while que je fais en dessous de cette balise de ne fonctionne pas du tout.
J'ai donc pour le moment une liste de ce type :
---Marque modele---
Citroen
Fiat
Peugeot
Renault
(j'ai rajouté quelques marques afin de mieux visualiser le résultat de mes tests)