Liste déroulante php,bd MySQL,pb codification
Résolu/Fermé
A voir également:
- Liste déroulante php,bd MySQL,pb codification
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Supprimer liste déroulante excel - Forum Excel
- Google sheet liste déroulante - Accueil - Guide bureautique
- Effacer liste déroulante - Forum Réseaux sociaux
66 réponses
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
17 sept. 2008 à 22:06
17 sept. 2008 à 22:06
Bonsoir,
Alors j'essai de comprendre un peu... Mais... en passant par un "mysql_pconnect()"
Un mysql_close ne ferme pas la connection à ta BDD, si ?
Et enfin, tu ne pourrais pas résoudre ton problème avec des requêtes ajax?
Alors j'essai de comprendre un peu... Mais... en passant par un "mysql_pconnect()"
Un mysql_close ne ferme pas la connection à ta BDD, si ?
Et enfin, tu ne pourrais pas résoudre ton problème avec des requêtes ajax?
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
17 sept. 2008 à 22:22
17 sept. 2008 à 22:22
Ajax n'est pas un langage, en fait c'est du javascript... Disons que c'est juste une méthode, qui permet d'actualiser certains éléments de ta page, sans avoir à recharger entièrement ta page... Pratique donc pour des listes déroulantes dynamique qui se remplissent en fonction du choix fait dans une autre liste.
Ce n'est pas bien compliqué, je peux t'expliquer vite fait si tu le souhaites! J'ai appris ça y'a pas longtemps, j'en profite :D
Ce n'est pas bien compliqué, je peux t'expliquer vite fait si tu le souhaites! J'ai appris ça y'a pas longtemps, j'en profite :D
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
17 sept. 2008 à 22:23
17 sept. 2008 à 22:23
Trop tard, je suis en train de poster un post ou je donne un code explicatif complet ! ^^
J'ai fini dans 5 min :p
Pris de vitesse !
A+
Gaerebut
J'ai fini dans 5 min :p
Pris de vitesse !
A+
Gaerebut
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
17 sept. 2008 à 22:28
17 sept. 2008 à 22:28
Maybe, tu verra, au meilleur ^^
A+
Gaerebut
A+
Gaerebut
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
gaerebut
Messages postés
1017
Date d'inscription
mardi 30 octobre 2007
Statut
Membre
Dernière intervention
22 novembre 2013
171
15 sept. 2008 à 12:50
15 sept. 2008 à 12:50
salut,
j'ai déjà fais faut des listes déroulante dynamique mais qu'entends-tu par imbriquées l'une dans l'autre ?
Tu peux pas donner le code aussi parce que c'est pas très clair ^^
A+
Gaerebut
j'ai déjà fais faut des listes déroulante dynamique mais qu'entends-tu par imbriquées l'une dans l'autre ?
Tu peux pas donner le code aussi parce que c'est pas très clair ^^
A+
Gaerebut
papymucho
Messages postés
140
Date d'inscription
mercredi 18 juin 2008
Statut
Membre
Dernière intervention
1 novembre 2009
220
17 sept. 2008 à 22:49
17 sept. 2008 à 22:49
J'attendais de voir la soluce de Gaerebut, mais je vais donc te laisser celle-ci également.
Mon code ne fonctionne qu'avec la librairie jquery pour javascript : https://jquery.com/ pour le télécharger.
C'est une librairie très puissante, qui permet entre autre de nombreuses animations, tel que le drag and drop etc... très simple à coder.... Mais elle facilite également les requêtes ajax. Si tu souhaites te documenter : http://jquery.developpeur-web2.com/documentation.php
Bon commençons...
Entre ton </header> et ton <body> tu insères : <script type="text/javascript" src="jquery.js"></script>
Et dans le dossier de ton site, tu copies/colles le fichier jquery.js.....
Ensuite passons au code:
je te donne un exemple, de 2 menus déroulants que j'ai créé récemment....
L'un tapes dans la table équipement.... Et récupère le type de matériel.... L'autre tape dans la table model.... Et récupère le modèle, en fonction du choix fait dans le 1er menu déroulant
fichier : _inc_select_equipment.php
fichier : _inc_select_model.php
et enfin le fichier javascript:
et le formulaire :
Y'a une tite fonction en plus, qui cache le 2ème menu déroulant tant que l'utilisateur n'a pas fait un choix dans le 1er menu déroulant.....
Mon code ne fonctionne qu'avec la librairie jquery pour javascript : https://jquery.com/ pour le télécharger.
C'est une librairie très puissante, qui permet entre autre de nombreuses animations, tel que le drag and drop etc... très simple à coder.... Mais elle facilite également les requêtes ajax. Si tu souhaites te documenter : http://jquery.developpeur-web2.com/documentation.php
Bon commençons...
Entre ton </header> et ton <body> tu insères : <script type="text/javascript" src="jquery.js"></script>
Et dans le dossier de ton site, tu copies/colles le fichier jquery.js.....
Ensuite passons au code:
je te donne un exemple, de 2 menus déroulants que j'ai créé récemment....
L'un tapes dans la table équipement.... Et récupère le type de matériel.... L'autre tape dans la table model.... Et récupère le modèle, en fonction du choix fait dans le 1er menu déroulant
fichier : _inc_select_equipment.php
<select id='select_equipment' name='select_equipment' onchange="show_form(this)"> <option value='void'>Choose an equipment</option> <?php include("_inc_connexion.php"); $query = "SELECT id_equipment, equipment FROM T_equipment ORDER BY equipment ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_equipment = $row["id_equipment"]; $equipment = $row["equipment"]; echo "<option value='$id_equipment'>$equipment</option>"; } mysql_close(); ?> </select>
fichier : _inc_select_model.php
<select id='select_model' name='select_model'> <option value='void'>Choose a model</option> <?php include("_inc_connexion.php"); $var=$_POST['var']; $query = "SELECT id_model, model FROM T_model WHERE id_equipment='$var' ORDER BY model ASC"; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_model = $row["id_model"]; $model = $row["model"]; echo "<option value='$id_model'>$model</option>"; } mysql_close(); ?> </select>
et enfin le fichier javascript:
function show_form(id_form) { get_url(id_form.value); } function get_url(test) { var selected = document.getElementById("select_equipment").options[document.getElementById("select_equipment").selectedIndex].value; $.ajax ( { type: "POST", url: "_inc_select_model.php", data: "var="+test, success: function(msg) { $("#tr_test").append("<td class='title'><b>Model :</b></td><td>"+ msg +"</td>"); if(selected=="void") $("#tr_test").hide(); else $("#tr_test").show(); } } ); }
et le formulaire :
<tr> <td class='title'><b>Equipment :</b></td><td><?php include('_inc_select_equipment.php')?></td> </tr> <tr id='tr_test'> </tr>
Y'a une tite fonction en plus, qui cache le 2ème menu déroulant tant que l'utilisateur n'a pas fait un choix dans le 1er menu déroulant.....
Bonjour papymucho
je me suis inspiré de votre code mai j'ai un problème, aucune erreur d'exécution, mais juste que la deuxième liste ne s'affiche pas et donc ne me permet pas un choix lorsque la première est renseigné.
J'ai une première liste contenu dans une base de donnée concernant des catégories d'annuaire
Le premier fichier _inc_select_catannu.php
puis un deuxième fichier pour la seconde liste (sous catégorie de l'annuaire)
Chaque catégorie donne accés à une liste de sous catégorie
_inc_select_souscatannu.php
le code javascript inséré dans le <head> de ma page formulaire d'où je fait appel aux deux fichiers .php
et enfin l'extrait de mon code html du fichier formulaire avec extention .php où
j'ai inséré : <script type="text/javascript" src="jquery.js"></script> entre </head> et <body>
Ceci n'est qu'un extrait du code car il est assé long, j'ai des scripts de différentes vérifications et autres. L'ensemble du formulaire fonctionne correctement à l'exéption de la deuxième liste déroulante qui ne s'affiche pas aprés sélection dans la première.
Pourriez vous si possible m'aider à vérifier ce code, car aprés plusieurs essai infructueux, je ne voi pas le problème, il est vrai que je ne suis pas dévelopeur, mais je me débrouille et là j'en perd mon latin....
Merci
je me suis inspiré de votre code mai j'ai un problème, aucune erreur d'exécution, mais juste que la deuxième liste ne s'affiche pas et donc ne me permet pas un choix lorsque la première est renseigné.
J'ai une première liste contenu dans une base de donnée concernant des catégories d'annuaire
Le premier fichier _inc_select_catannu.php
<select id="select_catannu" name="select_catannu" OnChange="show_form(this)"> <option value="void">Catégorie</option> <?php include("connect.php"); $query = "SELECT id_catannu , catannu FROM wmi_categorie ORDER BY wmi_categorie . id_catannu ASC LIMIT 0, 100 "; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_cat = $row["id_catannu"]; $categorie = $row["catannu"]; echo "<option value='$id_cat'>$categorie</option>"; } include("disconnect.php"); ?> </select>
puis un deuxième fichier pour la seconde liste (sous catégorie de l'annuaire)
Chaque catégorie donne accés à une liste de sous catégorie
_inc_select_souscatannu.php
<select id="select_souscat" name="select_souscat"> <option value="void">Sous catégorie</option> <?php include("connect.php"); $var=$_POST['var']; $query = "SELECT id_souscatannu , catannu , sous_catannu FROM wmi_souscategorie WHERE catannu='$var' ORDER BY sous_catannu ASC LIMIT 0, 300 "; $rq = mysql_query($query) or die(mysql_error()); while ($row=mysql_fetch_array($rq, MYSQL_ASSOC)) { $id_souscat = $row["catannu"]; $souscat = $row["sous_catannu"]; echo ("<option value='$id_souscat'>$souscat</option>"); } include("disconnect.php"); ?> </select>
le code javascript inséré dans le <head> de ma page formulaire d'où je fait appel aux deux fichiers .php
et enfin l'extrait de mon code html du fichier formulaire avec extention .php où
j'ai inséré : <script type="text/javascript" src="jquery.js"></script> entre </head> et <body>
...... .... .. function show_form(id_form) { get_url(id_form.value); } function get_url(test) { var selected = document.getElementById("select_catannu").options[document.getElementById("select_catannu").selectedIndex].value; $.ajax ( { type: "POST", url: "_inc_select_souscatannu.php", data: "var="+test, success: function(msg) { $("#tr_test").append("<td class='title'><b>Sous catégorie</b></td><td>"+ msg +"</td>"); if(selected=="void") $("#tr_test").hide(); else $("#tr_test").show(); } } ); } </script></head> <script type="text/javascript" src="jquery.js"></script> <body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()"> <div align="center"></div> <p align="center"> <table width="500" border="0" align="center"> <p align="center"> </p><tr> <td><font face="Verdana" size="2">Nom</font></td> <td><input name="champ1" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Prénom</font></td> <td><input name="champ2" type="text"></td> </tr><tr> <td><font face="Verdana" size="2">Titre du site</font></td> <td><input name="champ3" type="text"> (50 caractères maximum)</td> </tr><tr> <td><font face="Verdana" size="2">URL du site</font></td> <td><input name="champ4" type="text"> (http:// obligatoire)</td> </tr><tr> <td><font face="Verdana" size="2">Catégorie</font></td> <td><?php include('_inc_select_catannu.php')?></td> </tr><tr id='tr_test'> </tr><tr> <td width><font face="Verdana" size="2">Votre Email</font></td> <td width><input name="zone_email" type="text"></td> </tr><tr> <td valign="top"><font face="Verdana" size="2">Description (255 caractères maximum)</font></td> <td><textarea name="zone_texte" cols="40" rows="10"></textarea></td> </tr><tr> <td valign="top"> <input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="4"> <input name="nbre_zone_listecat" type="hidden" id="nbre_zone_listecat" value="1"> <input name="nbre_zone_listecat" type="hidden" id="nbre_zone_listesouscate" value="1"> <input name="nbre_zones_texte" type="hidden" value="1"> <input name="nbre_zone_email" type="hidden" value="1"> <input name="titre_champ1" type="hidden" value="Nom"> <input name="titre_champ2" type="hidden" value="Prénom"> <input name="titre_champ3" type="hidden" value="Titre du site (50 caractères maximum)"> <input name="titre_champ4" type="hidden" value="URL du site"> <input name="categorie_url" type="hidden" value="Catégorie"> <input name="souscate_url" type="hidden" value="Sous catégorie"> <input name="titre_email" type="hidden" value="Votre Email"> <input name="titre_zone" type="hidden" value="Description (255 caractères maximum)"></td> <td><div align="center"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="envoi" value="Envoyer"> </div></td> </tr> </table> <div align="center"></div> </form></body></html>
Ceci n'est qu'un extrait du code car il est assé long, j'ai des scripts de différentes vérifications et autres. L'ensemble du formulaire fonctionne correctement à l'exéption de la deuxième liste déroulante qui ne s'affiche pas aprés sélection dans la première.
Pourriez vous si possible m'aider à vérifier ce code, car aprés plusieurs essai infructueux, je ne voi pas le problème, il est vrai que je ne suis pas dévelopeur, mais je me débrouille et là j'en perd mon latin....
Merci