bakalai
Messages postés61Date d'inscriptiondimanche 11 novembre 2007StatutMembreDernière intervention18 septembre 2010
-
17 sept. 2010 à 21:03
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 2012
-
19 sept. 2010 à 10:17
Bonsoir,
Je souhaites dans une page php mettre 2 choix via 2 listes.
La seconde liste sera différente en fonction du choix effectué dans la première liste.
Le contenu de chaque liste fait parti d'une table différente dans une base phpmyadmin.
Le premier choix: c'est une liste de région ( nord,nord est,nord ouest,sud,sud est,sud ouest,dom,tom
Le second choix est une liste des départements en fonction de la région choisie.
Je cherche à n'afficher dans la seconde liste seulement les départements de la région choisi dans la première liste.
Voici le code que j'ai mis pour la liste déroulante pour le choix de la région:
<?php
//----------------------------------------------------------------------------------------------------------------------------------------------
Debut Fonction pour la liste des regions
//----------------------------------------------------------------------------------------------------------------------------------------------
function remplir_liste_region()
{
$lien = mysql_connect("localhost","root","") ;
mysql_select_db("monde",$lien) ;
$ls_region_select = "select region from region order by region" ;
$rs = mysql_query($ls_region_select, $lien) ;
while ($enregion = mysql_fetch_row($rs)) print("<option value="$enregion[0]">$enregion[0]</option>") ;
mysql_free_result($rs) ;
mysql_close($lien) ;
}
?>
//----------------------------------------------------------------------------------------------------------------------------------------------
Fin Fonction pour la liste des regions
//----------------------------------------------------------------------------------------------------------------------------------------------
<?php
//----------------------------------------------------------------------------------------------------------------------------------------------
Debut Fonction pour la liste des departements
//----------------------------------------------------------------------------------------------------------------------------------------------
function remplir_liste_departements()
{
$lien = mysql_connect("localhost","root","") ;
mysql_select_db("ipterre",$lien) ;
$ls_select = "select 'numero as' from 'echo .$region 'order by 'numero as'" ;
$rs = mysql_query($ls_select, $lien) ;
while ($enras = mysql_fetch_row($rs)) print("<option value="$enras[0]">$enras[0]-$enras[1]</option>") ;
mysql_free_result($rs) ;
mysql_close($lien) ;
}
?>
//----------------------------------------------------------------------------------------------------------------------------------------------
Fin Fonction pour la liste des departements
//----------------------------------------------------------------------------------------------------------------------------------------------
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 18 sept. 2010 à 07:24
C'est bête mais il essaie peut-être de faire son remplissage de select après un submit de son formulaire. Peut-être le Javascript n'est pas encore à sa portée.
Par contre c'est clair que si des tuto existent (et je remercie ceux qui prennent le temps d'en faire..), c'est tojours utile de se demander s'il faut ré-inventer la roue..
S.
bakalai
Messages postés61Date d'inscriptiondimanche 11 novembre 2007StatutMembreDernière intervention18 septembre 2010 18 sept. 2010 à 08:48
Bonjour,
Vous avez tous raisons
Merci
Je ne veut pas réinventer la poudre mais quand on ne connait pas on cherche toujours un peu a faire par soi même avant de demander de l'aide.
Je vais donc utiliser le tuto .
Benoît
@+
Vous n’avez pas trouvé la réponse que vous recherchez ?
bakalai
Messages postés61Date d'inscriptiondimanche 11 novembre 2007StatutMembreDernière intervention18 septembre 2010 18 sept. 2010 à 10:57
Bonjour,
Ok merci,
Ma premiere question :
J'a bien vu qu'il fallait une page avec la connexion a la db.
Mais faut il une page en php pour la lecture de 2 tables de ma base et une seconde en html pour l'affichage et le raffraichissement en fonction de mon premier Choix?
Ps :
je n'y connait strictement rien en java.
J'utilise ce qui existe sans trop comprendre des fois mais j'essaye de comprendre .
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 18 sept. 2010 à 11:54
Je n'ai toujours pas relu le tuto, mais le schéma traditionnel reste celui ci :
(1)Page HTML avec script Javascript (Ajax)
<==============>
(2)Script PHP
<==============>
(3)Base de données (mySQL)
- l'utilisateur fait un choix dans le premier select de 1 (une région)
- le script Javascript intercepte ce choix et l'envoie via Ajax à 2
- 2 interroge 3 qui fournie tous les résultats. En l'occurrence il renvoie tous les départements de la région demandée
- 2 renvoie vers 1 les résultats
- le script JS de 1 se charge d'afficher le second select avec les résultats reçus
Ce ne sont que les grandes lignes, et j'imagine que le tuto de Neige suit ce schéma (va falloir que je prenne quelques minutes pour le relire)
Ca peut te paraître compliqué, mais c'est en fait très simple.
Hormis le fait que l'utilisateur n'ait pas à recharger la page, cette méthode permet un découpage qui s'avère bien souvent plus simple que l'utilisation d'un submit de formulaire.
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 18 sept. 2010 à 12:09
Tant pis si tu n'y connais rien à Java, ici on va utiliser Javascript.
Pour être plus précis :
- La "page" qui est affichée à l'utilisateur doit afficher la première liste. Pour cela, un script PHP interroge la base de données pour la remplir avec les données qui vont bien. Qu'il soit séparé, intégré à la page HTML, on s'en fout un peu d'un point de vu fonctionnel (tant que ça marche, après, l'esthétique et tout ça, c'est presque accessoire)
- La "requête Ajax" doit "interroger" la base de données. Pour cela, il faut un script PHP dont le seul et unique rôle est de fournir le contenu de la seconde liste en fonction du choix dans la première (qui est donc un argument passé au script via la variable $_GET).
- Javascript va ensuite, avec ce résultat, remplir la seconde liste (éventuellement même, l'afficher si elle était d'abord cachée).
En gros, tu as besoin effectivement d'interroger deux fois la base de données, une fois pour chaque liste. La première fois "dans la page" principale, la seconde via un script dédié.
Dans mon tuto, j'utilise jQuery, parce que moi non plus, Javascript, je suis un peu réfractaire et jQuery permet de s'affranchir de pas mal de corvées. La partie Javascript du tuto ne représente franchement pas grand chose, grâce à jQuery : la doc de jQuery explique très bien comment fonctionnent les requêtes Ajax. Après, ce n'est que de l'adaptation à ce qu'on a.
--
Neige
Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
syndrael
Messages postés2378Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention29 décembre 201220 19 sept. 2010 à 10:17
C'est bête à dire mais notre ami ne semble pas avoir les bases en PHP.. donc si on lui rajoute Ajax, Javascript et tout le toutim ça va être chaud non ??
S.