Affichage liste déroulante php et html SVPPPP
mehdi9833
Messages postés
93
Statut
Membre
-
Narkos Messages postés 27 Statut Membre -
Narkos Messages postés 27 Statut Membre -
Bonjour à tous,
j'ai une premiére liste déroulante où s'affiche les classe de produit (telephonie,sécurité...) qui s'éxécute via une requête sql et j'ai une 2éme liste déroulante où s'affiche les ligne produit en fonction de la classe produit séléctionné ds la 1ére liste déroulante. Dc l'affichage ds la 2nde liste déroulante dépend de la selection ds la 1ére liste déroulante...mais je n'y arrive pas trop,donc un peu d'aide serait la bienvenu.
MERCII d'avance,
Voici mon code :
<!--
Commentaires HTML
On construit une liste déroulante ( un select et plusieurs options)
Chaque option sera remplie par une donnée SQL récupérée par notre requête PHP
-->
<select name="champ">
<?php
//On se connecte
connectMaBase();
//On prépare la requête SQL qui récupère les champs
$sql = 'SELECT distinct strClasseProduit FROM `article_criteres_recherche`';
/* On lance la requête (mysql_query)
et on impose un message d'erreur si la requête ne passe pas (or die) */
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//On scanne le résultat et on construit chaque option avec
while($data = mysql_fetch_array($req)){
// on affiche chaque champ
echo '<option name="'.$data['strClasseProduit'].'">'.$data['strClasseProduit'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req);
//On ferme le select
?>
</select>
<BR>
<BR>
<select name="champ1">
<?php
//On se connecte
connectMaBase();
//On prépare la requête SQL qui récupère les champs
//$sql1 = 'SELECT distinct `strLigneProduit` FROM `article_criteres_recherche` WHERE `strClasseProduit` ="'.$champ.'"';
$sql1 = 'SELECT DISTINCT `strLigneProduit` FROM `article_criteres_recherche` WHERE '.$champ1.'="'.$champ.'"';
//ou cette requête $sql1 = 'SELECT distinct `strLigneProduit` FROM `article_criteres_recherche`';
/* On lance la requête (mysql_query)
et on impose un message d'erreur si la requête ne passe pas (or die) */
$req1 = mysql_query($sql1) or die('Erreur SQL !<br />'.$sql1.'<br />'.mysql_error());
//On scanne le résultat et on construit chaque option avec
while($data1 = mysql_fetch_array($req1)){
// on affiche chaque champ
echo '<option name="'.$data1['strLigneProduit'].'">'.$data1['strLigneProduit'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req1);
//On ferme le select
?>
</select>
j'ai une premiére liste déroulante où s'affiche les classe de produit (telephonie,sécurité...) qui s'éxécute via une requête sql et j'ai une 2éme liste déroulante où s'affiche les ligne produit en fonction de la classe produit séléctionné ds la 1ére liste déroulante. Dc l'affichage ds la 2nde liste déroulante dépend de la selection ds la 1ére liste déroulante...mais je n'y arrive pas trop,donc un peu d'aide serait la bienvenu.
MERCII d'avance,
Voici mon code :
<!--
Commentaires HTML
On construit une liste déroulante ( un select et plusieurs options)
Chaque option sera remplie par une donnée SQL récupérée par notre requête PHP
-->
<select name="champ">
<?php
//On se connecte
connectMaBase();
//On prépare la requête SQL qui récupère les champs
$sql = 'SELECT distinct strClasseProduit FROM `article_criteres_recherche`';
/* On lance la requête (mysql_query)
et on impose un message d'erreur si la requête ne passe pas (or die) */
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
//On scanne le résultat et on construit chaque option avec
while($data = mysql_fetch_array($req)){
// on affiche chaque champ
echo '<option name="'.$data['strClasseProduit'].'">'.$data['strClasseProduit'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req);
//On ferme le select
?>
</select>
<BR>
<BR>
<select name="champ1">
<?php
//On se connecte
connectMaBase();
//On prépare la requête SQL qui récupère les champs
//$sql1 = 'SELECT distinct `strLigneProduit` FROM `article_criteres_recherche` WHERE `strClasseProduit` ="'.$champ.'"';
$sql1 = 'SELECT DISTINCT `strLigneProduit` FROM `article_criteres_recherche` WHERE '.$champ1.'="'.$champ.'"';
//ou cette requête $sql1 = 'SELECT distinct `strLigneProduit` FROM `article_criteres_recherche`';
/* On lance la requête (mysql_query)
et on impose un message d'erreur si la requête ne passe pas (or die) */
$req1 = mysql_query($sql1) or die('Erreur SQL !<br />'.$sql1.'<br />'.mysql_error());
//On scanne le résultat et on construit chaque option avec
while($data1 = mysql_fetch_array($req1)){
// on affiche chaque champ
echo '<option name="'.$data1['strLigneProduit'].'">'.$data1['strLigneProduit'].'</option>';
}
//On libère mysql de cette première requête
mysql_free_result ($req1);
//On ferme le select
?>
</select>
A voir également:
- Affichage liste déroulante php et html SVPPPP
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Editeur html - Télécharger - HTML
- Liste déroulante google sheet - Accueil - Guide bureautique
5 réponses
Bonjour,
Je te conseil de réviser les différences entre PHP, javascript et AJAX
Ce que tu cherche à faire c'est de l'AJAX, c'est à dire du PHP en fonction d'un événement Javascript
Donc une action côté serveur en fonction d'une action côté client.
Tu ne peux pas gérer ce cas en PHP uniquement
C'est au minimum Javascript + PHP (afficher/cacher plein de liste déroulant en fonction du choix), mais en AJAX c'est le top :P
Je te conseil de réviser les différences entre PHP, javascript et AJAX
Ce que tu cherche à faire c'est de l'AJAX, c'est à dire du PHP en fonction d'un événement Javascript
Donc une action côté serveur en fonction d'une action côté client.
Tu ne peux pas gérer ce cas en PHP uniquement
C'est au minimum Javascript + PHP (afficher/cacher plein de liste déroulant en fonction du choix), mais en AJAX c'est le top :P
En ajax le principe :
Tu crée ton premier SELECT champ
Tu rajoute : Onchange="fonction_javascript()" dans ta balise select
Et dans ta fonction en javascript tu fais appel a une page PHP à laquelle tu peux envoyer des valeur javascript
Donc tu appel un page effectuant ta requête SQL pour ton deuxième SELECT en lui envoyant en parametre document.getElementById('champ').value
Ensuite, en javascript, tu modifie les valeur de ton deuxième menu déroulant en fonction du résultat de ta page php
Tu crée ton premier SELECT champ
Tu rajoute : Onchange="fonction_javascript()" dans ta balise select
Et dans ta fonction en javascript tu fais appel a une page PHP à laquelle tu peux envoyer des valeur javascript
Donc tu appel un page effectuant ta requête SQL pour ton deuxième SELECT en lui envoyant en parametre document.getElementById('champ').value
Ensuite, en javascript, tu modifie les valeur de ton deuxième menu déroulant en fonction du résultat de ta page php
ok c'est un peu du chinois pour moi mais je vais essayer de bosser dessus(enfin me forcer).je te remercie Pilow
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello,
en voyant ce post j'ai failli répondre, mais je m'apercoi que "mehdi9833" ne travail pas beaucoup!
J'ai répondu à ton 1er sujet pour ta liste déroulante qui se remplissait pas:
https://forums.commentcamarche.net/forum/affich-15523274-affichage-resultat-requete-ds-tableau-dynamiq
Et maintenant que tu as la solution pour ton code, tu demandes la suite...
C'est pas en te faisant faire chaque partie de code que tu apprendra...
Et de plus, quand tu saura le faire toi, tu verra que tu gagnera du temps...
Enfin bon, je croyais t'aider, mais là suis déçu...
Quand je verrais que TON code progresser je t'aiderais volontier, mais tant que c'est pour faire ton taff je m'abonne absent...
aller quand même bonne continuation pour ton projet.
à plus
en voyant ce post j'ai failli répondre, mais je m'apercoi que "mehdi9833" ne travail pas beaucoup!
J'ai répondu à ton 1er sujet pour ta liste déroulante qui se remplissait pas:
https://forums.commentcamarche.net/forum/affich-15523274-affichage-resultat-requete-ds-tableau-dynamiq
Et maintenant que tu as la solution pour ton code, tu demandes la suite...
C'est pas en te faisant faire chaque partie de code que tu apprendra...
Et de plus, quand tu saura le faire toi, tu verra que tu gagnera du temps...
Enfin bon, je croyais t'aider, mais là suis déçu...
Quand je verrais que TON code progresser je t'aiderais volontier, mais tant que c'est pour faire ton taff je m'abonne absent...
aller quand même bonne continuation pour ton projet.
à plus