Menus déroulants imbriqués php/mysql
Fermé
Evelyne31
Messages postés
55
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
13 septembre 2016
-
18 juil. 2012 à 00:05
Evelyne31 Messages postés 55 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 13 septembre 2016 - 18 juil. 2012 à 16:52
Evelyne31 Messages postés 55 Date d'inscription mardi 17 juillet 2012 Statut Membre Dernière intervention 13 septembre 2016 - 18 juil. 2012 à 16:52
A voir également:
- Menus déroulants imbriqués php/mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Menus déroulants excel - Guide
- Error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) ✓ - Forum Linux / Unix
- Mysql gratuit ou payant - Forum MySQL
2 réponses
Evelyne31
Messages postés
55
Date d'inscription
mardi 17 juillet 2012
Statut
Membre
Dernière intervention
13 septembre 2016
5
18 juil. 2012 à 16:52
18 juil. 2012 à 16:52
Bonjour,
Je reviens encore plus découragée qu'hier. Quelqu'un a eu la gentillesse de m'envoyer un script entièrement en php qui marche bien sur son site. Je l'ai adapté à mon problème. J'arrive bien à afficher les pays mais pas les départements.
Je mets mon code ci-dessous. Si quelqu'un avait un peu de temps pour voir où est le problème ce serait super sympa. Merci par avance,
Evelyne
Je reviens encore plus découragée qu'hier. Quelqu'un a eu la gentillesse de m'envoyer un script entièrement en php qui marche bien sur son site. Je l'ai adapté à mon problème. J'arrive bien à afficher les pays mais pas les départements.
Je mets mon code ci-dessous. Si quelqu'un avait un peu de temps pour voir où est le problème ce serait super sympa. Merci par avance,
Evelyne
<?php $connexion = mysql_pconnect($serveur, $admin, $mdp); if($connexion != false) { $choixbase = mysql_select_db($base, $connexion); $sql1 = "SELECT 'id_pays', 'nomPays'". " FROM 'PAYS'". " ORDER BY 'id_pays'"; // ICI C'EST LA PREMIERE REQUETE POUR SELECTIONNER UN PAYS DANS UNE FUTURE LISTE DEROULANTE $rech_pays = mysql_query($sql1); $id_pays = array(); $nomPays = array(); /* On active un compteur pour les régions */ $nb_pays = 0; if($rech_pays != false) { while($ligne = mysql_fetch_assoc($rech_pays)) { array_push($id_pays, $ligne['id_pays']); array_push($nomPays, $ligne['nomPays']); /* On incrémente de compteur */ $nb_pays++; } } ?> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdepartement"> <p>Sélectionnez un pays</p> <select name="nomPays" id="nomPays" onchange="document.forms['chgdepartement'].submit();"> <option value="-1">- - - Choisissez un pays- - -</option> <?php for($i = 0; $i < $nb_pays; $i++) { ?> <option value="<?php echo($id_pays[$i]); ?>"<?php echo((isset($idp) && $idp == $id_pays[$i])?" selected=\"selected\"":null); ?>><?php echo($nomPays[$i]); ?></option> // ICI C'EST LA LISTE DEROULANTE, DANS VALUE ON A L'ID ET ENTRE LA BALISE OPTION ON A nomPays <?php } ?> </select> <?php mysql_free_result($rech_pays); /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */ if(isset($idp) && $idp != -1) { /* Cération de la requête pour avoir les départements de cette région */ $sql2 = "SELECT 'id_departement', 'nomDepartement'". " FROM 'DEPARTEMENT'". " WHERE 'id_pays' = ". $idp ."". " ORDER BY 'id_departement';"; //ICI CEST LA DEUXIEME REQUETE POUR TROUVER UN DEPARTEMENT SUIVANT CE QUON A SELECTIONNER EN nomPays // AVEC LA CLAUSE WHERE IDnomPays=$idr if($connexion != false) { $rech_departement = mysql_query($sql2, $connexion); /* Un petit compteur pour les départements */ $nd = 0; /* On crée deux tableaux pour les numéros et les noms des départements */ $id_departement = array(); $nomDepartement = array(); /* On va mettre les numéros et noms des départements dans les deux tableaux */ while($ligne_departement = mysql_fetch_assoc($rech_departement)) { array_push($id_departement, $ligne_departement['id_departement']); array_push($nomDepartement, $ligne_departement['nomDepartement']); $nd++; } /* Maintenant on peut construire la liste déroulante */ ?> <select name="nomDepartement" id="nomDepartement"> <?php for($d = 0; $d<$nd; $d++) // BOUCLE POUR LA DEUXIEME LISTE DEROULANTE { ?> <option value="<?php echo($id_departement[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $id_departement[$d])?" selected=\"selected\"":null); ?><?php echo($nomDepartement[$d]." (". $id_departement[$d] .")"); ?></option> <?php } ?> </select> <?php } /* Un petit coup de balai */ mysql_free_result($rech_departement); } ?> <?php /* Terminé, on ferme la connexion */ mysql_close($connexion); } else { /* Si on arrive là, c'est pas bon signe, il faut vérifier les paramètres de connexion, mot de passe, serveur pas démarré etc... */ ?> <p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p> <?php } ?>
laoshu
Messages postés
1231
Date d'inscription
mardi 7 juin 2011
Statut
Membre
Dernière intervention
24 mai 2015
350
18 juil. 2012 à 08:17
18 juil. 2012 à 08:17
Bonjour,
Si tu veux qu'un choix dans un formulaire agisse sur un second choix, tu as deux possibilité, me semble-t-il :
1- Tu passes par du javascript pour prendre en compte le premier choix et agir sur le second sans que l'utilisateur aie besoin de recharger la page.
2- Tu fais en sorte que l'utilisateur change de page après avoir fait le premier choix.
Php s'exécute entièrement au chargement de la page. Quand l'utilisateur voit la page, php ne peut plus rien faire. (Ou alors on m'a menti)
J'aurais du mal à t'aider en javascript... mais tu trouveras de bons tutoriel sur Internet. Certains prétendent que le langage est assez simple...
Si tu veux qu'un choix dans un formulaire agisse sur un second choix, tu as deux possibilité, me semble-t-il :
1- Tu passes par du javascript pour prendre en compte le premier choix et agir sur le second sans que l'utilisateur aie besoin de recharger la page.
2- Tu fais en sorte que l'utilisateur change de page après avoir fait le premier choix.
Php s'exécute entièrement au chargement de la page. Quand l'utilisateur voit la page, php ne peut plus rien faire. (Ou alors on m'a menti)
J'aurais du mal à t'aider en javascript... mais tu trouveras de bons tutoriel sur Internet. Certains prétendent que le langage est assez simple...