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

  FORUM HardWare.fr
  Programmation
  PHP

  Comment changer dynamiquement le contenu de tag <select> ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment changer dynamiquement le contenu de tag <select> ?

n°286302
samuelp
Posté le 14-01-2003 à 20:21:21  profilanswer
 

Salut joce,
 
 
Je vais faire au plus simple :
 
J'ai en HTML + PHP (qui genere du HTML) deux <select>
 
Mon resp Info veut que, quand je selectionne qqchose dans le premier <select> je change ce qu'il faut dans le second (dans mon cas : Premier c'est les rgions, le deuxieme c'est les commune)
 
En JavaScript on aurait pu utiliser la methode OnChange du tag <select>  
Mais cela reviendrait à recharger la page, ce qui est un peu lourd.
 
Existe t-il une autre methode pour changer dynamiquement en HTML+PHP le contenu du deuxieme select ?
 
 
Merci d'avance

mood
Publicité
Posté le 14-01-2003 à 20:21:21  profilanswer
 

n°286325
samuelp
Posté le 14-01-2003 à 21:09:24  profilanswer
 

Voici un exempel de code :
 

Code :
  1. <html>
  2. <head>
  3. <SCRIPT LANGUAGE="javascript">
  4.   <!--
  5.   function gotoLink() {
  6. // Get the currently selected item from the menu
  7.   goingTo = document.quickMenu.link.options[document.quickMenu.link.selectedIndex].value;
  8.   // If the currently selected item is not valid, do nothing. Otherwise,
  9.   // redirect the browser to the newly selected page.
  10.   if (goingTo == "" )
  11.     { return; }
  12.   else
  13.     { self.location =  "http://www.yahoo.fr"; }
  14.   }
  15.   // -->
  16. </SCRIPT>
  17. </head>
  18. <body>
  19. <FORM NAME="quickMenu">
  20.   <LABEL>Get information from <A HREF="http://www.yahoo.com">Yahoo</A> about one of the states:
  21.   <SELECT NAME="link" ONCHANGE="gotoLink()">
  22.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alabama/">Alabama</OPTION>
  23.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alaska/">Alaska</OPTION>
  24.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alabama/">Alabama</OPTION>
  25.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alaska/">Alaska</OPTION>
  26.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alabama/">Alabama</OPTION>
  27.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Alaska/">Alaska</OPTION>
  28.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Arizona/">Arizona</OPTION>
  29.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Arkansas/">Arkansas</OPTION>
  30.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/California/">California</OPTION>
  31.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Colorado/">Colorado</OPTION>
  32.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Connecticut/">Connecticut</OPTION>
  33.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Delaware/">Delaware</OPTION>
  34.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Florida/">Florida</OPTION>
  35.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Georgia/">Georgia</OPTION>
  36.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Hawaii/">Hawaii</OPTION>
  37.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Idaho/">Idaho</OPTION>
  38.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Illinois/">Illinois</OPTION>
  39.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Indiana/">Indiana</OPTION>
  40.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Iowa/">Iowa</OPTION>
  41.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Kansas/">Kansas</OPTION>
  42.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Kentucky/">Kentucky</OPTION>
  43.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Louisiana/">Louisiana</OPTION>
  44.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Maine/">Maine</OPTION>
  45.     <OPTION VALUE="http://dir.yahoo.com/Regional/U_S__States/Maryland/">Maryland</OPTION>
  46.     </SELECT>
  47.   </LABEL>
  48. </FORM>
  49. </body>
  50. </html>

 
 
Maintenant quand je selectionne qqchose ben la fonction est belle et bien appelee, helas je ne peux nullement faire du PHP a l'interieur de cette fonction
 
Un echo "bonjour" ne marche meme pas :(
 
Alors comment faire ? Je me le demande (et en me le demandant je crois avoir trouvé une solution)  :pfff:

n°286351
ethernal
Chercheur de vérité...
Posté le 14-01-2003 à 21:56:51  profilanswer
 

updater un select avec un autre sans re-chargement de page --> javascript.
updater un select avec un autre avec re-chargement de page -> php.
 
tu peux charger tes selects avec des infos issues d'une bd/php, puis utiliser la solution 1, mais la partie update du second select restera du javascript.

n°286435
mejero
Posté le 14-01-2003 à 23:06:15  profilanswer
 

Il y a aussi la méthode de la "frame cachée" :)
 
Bon c plus une astuce qu'autre chose mais suivant ta situation ca peut etre la solution.
 
Donc en gros tu fais un frameset avec ta frame principale (appelée Principale) qui fait 100% et une frame de dimension 0 (appelée Cachee).
 
Tu généres ta page avec ton premier select qui a une méthode onChange qui appelle la page remplir_select.php dans la frame Cachee. Cette fonction va aller chercher les bons éléments du select, et remplir le select de ta page dans la frame Principale en construisant le javascript grace a un script php qui sera allé cherché les bonnes données et en reconstruisant le select via : parent.document.form.[NomSelect] ... etc via javascript. (C un peu tiré par les cheveux ^^ mais j'ai du mal a clarifier la chose a cette heure la :D )
 
Cette méthode peut pas toujours être utilisée pour des questions de compatibilités à cause des frames, mais si tu peux te le permettre alors ca resoudra ton probleme ;)
 
Si tu comprends pas tout, poses tes questions ^^

n°286759
samuelp
Posté le 15-01-2003 à 12:28:07  profilanswer
 

Mejero a écrit :

Il y a aussi la méthode de la "frame cachée" :)
 
Bon c plus une astuce qu'autre chose mais suivant ta situation ca peut etre la solution.
 
Donc en gros tu fais un frameset avec ta frame principale (appelée Principale) qui fait 100% et une frame de dimension 0 (appelée Cachee).
 
Tu généres ta page avec ton premier select qui a une méthode onChange qui appelle la page remplir_select.php dans la frame Cachee. Cette fonction va aller chercher les bons éléments du select, et remplir le select de ta page dans la frame Principale en construisant le javascript grace a un script php qui sera allé cherché les bonnes données et en reconstruisant le select via : parent.document.form.[NomSelect] ... etc via javascript. (C un peu tiré par les cheveux ^^ mais j'ai du mal a clarifier la chose a cette heure la :D )
 
Cette méthode peut pas toujours être utilisée pour des questions de compatibilités à cause des frames, mais si tu peux te le permettre alors ca resoudra ton probleme ;)
 
Si tu comprends pas tout, poses tes questions ^^


 
J'ai pas tout compris :D
 
 J'ai trouvé une solution alternative : Je genere ma requete PostGre avant l'appel de JavaScript et je fout la valeur dans le tag Value de Option comme ça je peux me debrouiller avec des split dans le $HTTP_POST_VARS
 
Par contre il y a un gros probleme c'est que en meme temps que les <select> j'ai des checkbox, si je recherge la page avec le OnChange ce que j'ai coché est perdu, et là je sais vraiment pas comment faire :(  
 
(Quand je coche une CheckBox je ne sais pas comment garder son status et le reutiliser en utilsant PHP dans la génération du code HTML)


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

  Comment changer dynamiquement le contenu de tag <select> ?

 

Sujets relatifs
[Access] Récupérer le contenu d'une listeModification du contenu d'une page en js
comment faire pour changer de jdk sous visual age ??? urgenty'a t'il moyen de voir le contenu d'un bios et de le modifier?
Afficher le contenu d'une page en un seul coup ?Changer de dossier dans un TShellListView
Access 97 modifier le contenu d'un champ ...[VBA] : ouvrir EXCEL par Access, sans changer de fenêtre active
SELECT qui passe par dessus un menu...changer les parametres regionaux sous vb
Plus de sujets relatifs à : Comment changer dynamiquement le contenu de tag <select> ?


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