Contenu d'un champ déroulant suivant la value d'un autre champ
Résolu
pulls
Messages postés
136
Date d'inscription
Statut
Membre
Dernière intervention
-
Ysabe_l Messages postés 12714 Date d'inscription Statut Contributeur Dernière intervention -
Ysabe_l Messages postés 12714 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai 2 champs déroulant dans mon formulaire, Ville et Zone. Les données de ces champs viennent d'une bdd mysql. Je voudrais que dans mon champ zone ( A,B,C,D,....), je n'ai que les zones de la ville que j'ai selectionné dans le champ ville.
Je n'arrive pas à mettre cette référence dans ma clause WHERE de SQL suivant:
Je vous prie de m'aider
merci
j'ai 2 champs déroulant dans mon formulaire, Ville et Zone. Les données de ces champs viennent d'une bdd mysql. Je voudrais que dans mon champ zone ( A,B,C,D,....), je n'ai que les zones de la ville que j'ai selectionné dans le champ ville.
Je n'arrive pas à mettre cette référence dans ma clause WHERE de SQL suivant:
$req = "SELECT * FROM zone WHERE ville='? ' ";
Je vous prie de m'aider
merci
A voir également:
- Contenu d'un champ déroulant suivant la value d'un autre champ
- Menu déroulant excel - Guide
- Contenu wmg ✓ - Forum TV & Vidéo
- Le fichier à télécharger correspond au contenu brut d’un courrier électronique. de quel pays a été envoyé ce message ? - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Champ lexical de village ✓ - Forum Études / Formation High-Tech
5 réponses
J'ai essayé ceci, mais ça ne marche pas.
Cordialement
$req = "SELECT * FROM zone WHERE ville='<script>document.getElementById('villeccial').value</script>' ";
Cordialement
Bonjour,
Alors il faut que tu récupères la valeur choisie du champ "ville" dans une variable, mettons la variable $ville_selec, pour ça tu vas utiliser le onChange sur ta liste déroulante des villes.
Ensuite pour n'afficher que les zones de la bonne ville tu feras la requête $req = 'SELECT * FROM zone WHERE ville = $ville_selec';
Alors il faut que tu récupères la valeur choisie du champ "ville" dans une variable, mettons la variable $ville_selec, pour ça tu vas utiliser le onChange sur ta liste déroulante des villes.
Ensuite pour n'afficher que les zones de la bonne ville tu feras la requête $req = 'SELECT * FROM zone WHERE ville = $ville_selec';
Bonjour Ysabe_l,
J'ai compris ton idée, mais je ne sais comment la mettre en pratique. Je vais donner qu'elle valeur à la variable $ville_select ? comment est ce que je vais utiliser cette variable php dans un code javascript?
Je te prie d'être un peu plus explicite.
Cordialement
J'ai compris ton idée, mais je ne sais comment la mettre en pratique. Je vais donner qu'elle valeur à la variable $ville_select ? comment est ce que je vais utiliser cette variable php dans un code javascript?
Je te prie d'être un peu plus explicite.
Cordialement
qu'elle valeur à la variable $ville_select ? comment est ce que je vais utiliser cette variable php dans un code javascript?
Salut,
la valeur c'est du dynamique et vous utilisez javascript où il ne peut pas être utilisé: Javascript fonctionne sur l'ordinateur de l'internaute(client/local) et ne communique pas avec la base de données, pour ça il faut utiliser PHP sinon tout le monde s'en passerait de PHP XD.
PHP et javascript ne fonctionne pas ensemble (sauf lors de rares exception qu'il est peu utile de détailler pour le fonctionnement standard que vous voulez), à la limite javascript n'a aucun intérêt dans votre code puisque ce que vous voulez c'est une requête; au lieu d'utiliser une variable javascript faites la même variable en PHP: CQFD(formulaire en POST ou GET)
Tout y est dans le mesage d'Ysabe_l ci dessous; cependant attention à ne pas confondre requêtes, formulaires, javascript et PHP... ce sont des technologies différentes qui si elles peuvent fonctionner ensemble fonctionne différemment et à plusieurs niveaux différents
Salut,
la valeur c'est du dynamique et vous utilisez javascript où il ne peut pas être utilisé: Javascript fonctionne sur l'ordinateur de l'internaute(client/local) et ne communique pas avec la base de données, pour ça il faut utiliser PHP sinon tout le monde s'en passerait de PHP XD.
PHP et javascript ne fonctionne pas ensemble (sauf lors de rares exception qu'il est peu utile de détailler pour le fonctionnement standard que vous voulez), à la limite javascript n'a aucun intérêt dans votre code puisque ce que vous voulez c'est une requête; au lieu d'utiliser une variable javascript faites la même variable en PHP: CQFD(formulaire en POST ou GET)
Tout y est dans le mesage d'Ysabe_l ci dessous; cependant attention à ne pas confondre requêtes, formulaires, javascript et PHP... ce sont des technologies différentes qui si elles peuvent fonctionner ensemble fonctionne différemment et à plusieurs niveaux différents
Vu ton message je pensais que tu t'y connaissais et que te donner cette piste t'aiderait.
Donc en plus détaillé :
Il y a peut-être quelques erreurs, je n'ai pas testé mais à j'ai modifié un code que j'avais et qui marche (qui imbriquait 4 listes dépendantes les unes des autres et qui était donc beaucoup plus complexe, il est possible que j'ai donc laissé des trucs en trop).
Donc en plus détaillé :
<!-- LES REQUETES --> <?php $ville = mysql_query("SELECT DISTINCT ville FROM table ORDER BY ville"); // liste de toutes les villes if(isset($_GET['ville'])) // si on a choisi une ville { $selected_ville = $_GET['ville']; // ville qui est dans l'URL $zone = mysql_query("SELECT * FROM table WHERE ville = '$selected_ville' ORDER BY zone"); // toutes les zones qui correspondent à la ville sélectionnée } ?> <!-- AFFICHAGE DE LA LISTE DES CHOIX DE VILLES --> <select id="ville" onChange="location = this.options[this.selectedIndex].value;"> <?php if(isset($_GET['ville'])) // si une ville a été choisie on affiche son nom par défaut dans la liste de choix { ?> <option><?php echo $_GET['ville']; ?></option> <?php } else // sinon on affiche l'invite de choix en titre de la liste { ?> <option value="choix_ville">--- Choisir une ville ---</option> <?php } ?> <option value='page.php?'>Tout afficher</option> <?php while ($i = mysql_fetch_row($ville)) //affichage de toutes les villes et modification de l'url si sélection { echo "<option value='page.php?ville=".$i['0']."'>".$i["0"]."</option>"; } ?> </select> <!-- AFFICHAGE DE LA LISTE DES CHOIX DE ZONES --> <select id="zone" onChange="location = this.options[this.selectedIndex].value;"> <?php if(isset($_GET['zone'])) // si une zone a été choisie on l'affiche en titre de la liste { ?> <option><?php echo $_GET['zone']; ?></option> <?php } else // sinon on demande de choisir une ville { ?> <option value="choix_demande">--- Veuillez choisir une ville ---</option> <?php } ?> <option value='index1.php?'>Tout afficher</option> <?php if(isset($_GET['ville'])) // si une ville est choisie affichage des zones qui lui correspondent et modification de l'url si sélection { while ($i = mysql_fetch_assoc($zone)) { echo "<option value='page.php?zone=".$i['zone']."'>".$i["zone"]."</option>"; } } ?> </select>
Il y a peut-être quelques erreurs, je n'ai pas testé mais à j'ai modifié un code que j'avais et qui marche (qui imbriquait 4 listes dépendantes les unes des autres et qui était donc beaucoup plus complexe, il est possible que j'ai donc laissé des trucs en trop).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tient ... moi qui pensait être le seul sur terre à coder encore sous PHP4 ^^ .