Contenu d'un champ déroulant suivant la value d'un autre champ
Résolu/Fermé
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
-
Modifié par pulls le 27/06/2013 à 12:17
Ysabe_l Messages postés 12597 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 20 décembre 2024 - 28 juin 2013 à 12:56
Ysabe_l Messages postés 12597 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 20 décembre 2024 - 28 juin 2013 à 12:56
A voir également:
- Contenu d'un champ déroulant suivant la value d'un autre champ
- Menu déroulant excel - Guide
- 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
- Word a trouvé du contenu illisible - Guide
- &Quot;Nom de champ de TCD non valide" Excel 2007 - Forum Excel
5 réponses
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
27 juin 2013 à 12:37
27 juin 2013 à 12:37
J'ai essayé ceci, mais ça ne marche pas.
Cordialement
$req = "SELECT * FROM zone WHERE ville='<script>document.getElementById('villeccial').value</script>' ";
Cordialement
Ysabe_l
Messages postés
12597
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
20 décembre 2024
276
27 juin 2013 à 15:21
27 juin 2013 à 15:21
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';
pulls
Messages postés
136
Date d'inscription
mercredi 30 décembre 2009
Statut
Membre
Dernière intervention
13 septembre 2023
3
27 juin 2013 à 16:19
27 juin 2013 à 16:19
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
Ysabe_l
Messages postés
12597
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
20 décembre 2024
276
27 juin 2013 à 16:50
27 juin 2013 à 16:50
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
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
28 juin 2013 à 09:03
28 juin 2013 à 09:03
Tient ... moi qui pensait être le seul sur terre à coder encore sous PHP4 ^^ .
Ysabe_l
Messages postés
12597
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
20 décembre 2024
276
28 juin 2013 à 12:56
28 juin 2013 à 12:56
C'est un code que j'avais fait en stage, je ne connaissais pas le php du tout et j'ai appris sur le tas en analysant les codes que le maître de stage avait déjà fait ^^ Depuis je progresse et je ne fais plus comme ça mais là la flemme de réfléchir dessus en fait.