Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1479 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  liste déroulante modifiant dynamiquement 2e liste déroulante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

liste déroulante modifiant dynamiquement 2e liste déroulante

n°476799
grohark
Posté le 04-08-2003 à 11:54:51  profilanswer
 

olà !
je m'explique, j'ai 2 listes déroulantes générées en php,la 1er contenant tous les départements de france, la 2e contenant toutes les villes de france déjà existantes dans la bdd.
ce que je souhaite c'est lorsque je choisi un département, les villes affichées dans la 2e liste déroulante se reduisent aux villes présentent dans ce département.
je pense que le javascript est incontournable ici, avec donc un événement onchange().
mais après je coince, je ne vois pas comment je peux regénérer dynamiquement la 2e liste déroulante ?

mood
Publicité
Posté le 04-08-2003 à 11:54:51  profilanswer
 

n°476800
fastclemmy
(re-)Dictateur en plastique
Posté le 04-08-2003 à 11:56:19  profilanswer
 
n°476942
grohark
Posté le 04-08-2003 à 14:05:16  profilanswer
 

ok merci pour le lien je comprends la demarche.
par contre ça coince pour le passage PHP/javascript et vice-versa.
 
dans la 1ère liste déroulante, je récupère bien le nom de mon département, après je veux utiliser cette variable pour faire une requete SQL avec PHP pour récupérer toutes les villes appartenant à ce département.
=> 1er problème
 
ensuite je traite mon résultat pour l'avoir dans un tableau (en PHP) que je veux ensuite exploiter pour refaire ma liste déroulante (en javascript)
=> 2nd problème

n°476981
RiderCrazy
Posté le 04-08-2003 à 14:46:39  profilanswer
 

JS -> client-side
PHP -> Server Side
Si tu veux faire une autre requête en php à partir d'informations récuperées en js, il te faut reloader ta page [:spamafote]

n°476988
grohark
Posté le 04-08-2003 à 14:53:58  profilanswer
 

gloups c'est vrai (le lundi c'est dur de réfléchir... :sleep: )
bon alors procédons différemment, je fais un requete avant qui me recupère toute les villes avec leurs code postal, commment puis-je exploiter ce résultat avec ma variable javascript.
ici le problème ce n'est pas la demarche mais comment se dépatouiller avec une variable de type PHP et une de type javascript ?

n°477014
dropsy
et bonne chance surtout...
Posté le 04-08-2003 à 15:10:36  profilanswer
 


une fois que t'as récupéré ta liste complète, tu te rattaches à cet exemple

n°477023
pgompel
Posté le 04-08-2003 à 15:15:14  profilanswer
 

grohark a écrit :

gloups c'est vrai (le lundi c'est dur de réfléchir... :sleep: )
bon alors procédons différemment, je fais un requete avant qui me recupère toute les villes avec leurs code postal, commment puis-je exploiter ce résultat avec ma variable javascript.
ici le problème ce n'est pas la demarche mais comment se dépatouiller avec une variable de type PHP et une de type javascript ?


 
En gros, le principe est simple :  
 
tu fais une requête pour toutes les villes en PHP
 
tu fais générer au pHP du javascript en faisant un truc du type :
echo "<script language=javascript> var tableau[];"
for ($i=0;$i<nb_billes;$i++) {
 
}

n°477072
Phive
Raaah Lovely
Posté le 04-08-2003 à 15:45:46  profilanswer
 

alors ca donne koi finalement grohark ?
Ca marche ? tu as trouvé ?


Message édité par Phive le 04-08-2003 à 15:45:57

---------------
/!\ Post powered by Phive-online.com /!\
n°477135
grohark
Posté le 04-08-2003 à 16:08:27  profilanswer
 

j'y travaille, j'y travaille... :pt1cable:
 
et toi ça avance ton anim flash ?  :whistle:

n°477217
Phive
Raaah Lovely
Posté le 04-08-2003 à 16:47:11  profilanswer
 

grohark a écrit :

j'y travaille, j'y travaille... :pt1cable:
 
et toi ça avance ton anim flash ?  :whistle:  


 
la n'est pas le sujet du topic mon cher grohark  
veux tu bien ne pas deriver  et travailler un peu :whistle:


---------------
/!\ Post powered by Phive-online.com /!\
mood
Publicité
Posté le 04-08-2003 à 16:47:11  profilanswer
 

n°477229
grohark
Posté le 04-08-2003 à 16:55:35  profilanswer
 

Phive a écrit :


 
la n'est pas le sujet du topic mon cher grohark  
veux tu bien ne pas deriver  et travailler un peu :whistle:  


 
t'aurais commencé par me demander de vive voix où j'en étais dans mon travail, on en serait pas là.  :kaola:

n°477809
grohark
Posté le 05-08-2003 à 10:56:35  profilanswer
 

j'ai un petit problème de simple quote avec javascript, je fais ça :
 

Code :
  1. print("<script language=\"JavaScript\" type=\"text/javascript\">
  2. tab =new Array();
  3. tab[0]='';\n" );
  4. for($i=1; $i<count($villes); $i++){
  5.   //for($j=0; $j<count($villes[$i]); $j++){
  6.     print("tab[".$i."] = new Array('".$villes[$i][0]."','".$villes[$i][1]."','".$villes[$i][2]."');\n" );
  7.   //}
  8. }


ça créé un problème lorsqu'il y a une apostrophe dans le nom de la ville.
 
est ce que qq aurait une solution de concaténation pour avoir ça :
tab[215] = new Array("L'ISLE SUR LE DOUBS","25250","Doubs" );
au lieu de ça :
tab[215] = new Array('L'ISLE SUR LE DOUBS','25250','Doubs');
 
merci.

n°477848
dropsy
et bonne chance surtout...
Posté le 05-08-2003 à 11:23:11  profilanswer
 

utilises la fonction php addslashes sur les noms de tes villes ;)


Message édité par dropsy le 05-08-2003 à 11:23:25
n°477854
grohark
Posté le 05-08-2003 à 11:28:53  profilanswer
 

j'y pensé mais ça va apparaitre dans la 2e liste déroulante que je vais recréer avec ce tableau.
à moins qu'il y ai possibilité par la suite de virer ces slash avec du javacript ?

n°477862
grohark
Posté le 05-08-2003 à 11:32:41  profilanswer
 

grohark a écrit :

j'y pensé mais ça va apparaitre dans la 2e liste déroulante que je vais recréer avec ce tableau.
à moins qu'il y ai possibilité par la suite de virer ces slash avec du javacript ?


 
rectification ! je viens de dire une grosse bêtise ! tjrs tourner sa langue dans sa bouche avant de parler  :)  
effectivement ça fonctionne...

n°477956
Schimz
Bouge pas, meurs, ressuscite !
Posté le 05-08-2003 à 13:10:55  profilanswer
 

ça risque d'être un peu lourdingue avec cette methode. essaye en envoyant une requete au serveur pour qu'il te renvoye les villes du departement selectionné.

n°478046
grohark
Posté le 05-08-2003 à 14:33:37  profilanswer
 

c'est sur que ce n'est pas simple de cette façon !
mais je préfère éviter de faire une requête de plus.
bon finalement j'ai réussi à faire ce que je voulais donc je mets le code si ça intéresse qq1 :
 

Code :
  1. print("<script language=\"JavaScript\" type=\"text/javascript\">
  2. tab =new Array();
  3. tab[0]='';\n" );
  4. for($i=1; $i<count($villes); $i++){
  5.   //for($j=0; $j<count($villes[$i]); $j++){
  6.     print("tab[".$i."] = new Array(\"".$villes[$i][0]."\",".$villes[$i][1].",\"".$villes[$i][2]."\" );\n" );
  7.   //}
  8. }

 
cette partie là permet de générer le tableau javascript. (finalement je me suis passé du addslashes, je me suis souvenu que le \" était très pratique ;)  
 
 

Code :
  1. print("function phive(){
  2.   var ville = document.form1.ville;
  3.   var taille = ville.options.length;
  4.   var dep = document.form1.dep.value;
  5. /*** Suppression des options présentes ***/
  6.   for(var i=0; i < taille ; i++){
  7.     //ville.options[0] = null;
  8.     ville.options[1] = null;
  9.   }
  10. /*** Ajout des nouvelles options ***/ 
  11.   for(var i=0; i < tab.length; i++){
  12.     if(dep == tab[i][2]){
  13.             var opt = new Option(tab[i][0]+\" (\"+tab[i][1]+\" )\" );
  14.             ville.options[ville.options.length] = opt;
  15.  }
  16.       }
  17.       ville.focus();
  18. }

 
 
cette partie génère la 2e liste déroulante en fonction du département sélectionné.
 
et dans le corps de la page :
 

Code :
  1. print("<td width=\"50%\"><select name=\"dep\" size=\"1\" onChange=phive()><option>-- Votre d&eacute;partement --</option>" );
  2. for($i=0; $i<$nbdep; $i++){
  3.   print("<option value=\"".$deps[$i][dep_nom]."\">".$deps[$i][dep_nom]."</option>\n" );
  4. }
  5. print("</td></tr>
  6.   <tr>
  7.     <td width=\"30%\">Ville (<a href=\"javascript:popup()\">créer une ville</a> )</td>
  8.  <td width=\"50%\"><select name=\"ville\" size=\"1\" >
  9. <option >-- Votre ville --</option>" );


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  liste déroulante modifiant dynamiquement 2e liste déroulante

 

Sujets relatifs
Liste deroulante dynamique[Html/JS] Liste déroulante qui agit sur une autre comment faire ?
[VBA] Comment remettre une liste box à 0Ajouter dynamiquement un control dans un form
Liste des pays[C++] Besoin d'une liste un peu particuliere
Comment recupere t on la liste des processus sous windows (autre prob)Liste d'elements...
Plus de sujets relatifs à : liste déroulante modifiant dynamiquement 2e liste déroulante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR