variable php dans un javascript

variable php dans un javascript - Programmation

Marsh Posté le 23-05-2001 à 13:33:22    

Bonjour a tous,
J'aimerai savoir comment passer une variable calculé ds un script php a une fonction javascript sur la meme page.
Merci d'avance :jap:  :jap:  :jap:


---------------
Moi, quand on m'en fait trop j'correctionne plus : j'dynamite, j'disperse, j'ventile. (tontons flingueurs)
Reply

Marsh Posté le 23-05-2001 à 13:33:22   

Reply

Marsh Posté le 23-05-2001 à 13:43:16    

Génère ton javascript avec du PHP -->
 
<?php
 
echo "<script language=\"Javascript\">
      <!--Ton script-->
      </script>";
?>
 
Ca répond à ta question ?

Reply

Marsh Posté le 23-05-2001 à 13:48:56    

Merci bcp :jap:  
Peut-on faire l'inverse? mettre du code php ds un javascript
 :sol:


---------------
Moi, quand on m'en fait trop j'correctionne plus : j'dynamite, j'disperse, j'ventile. (tontons flingueurs)
Reply

Marsh Posté le 23-05-2001 à 13:53:08    

NON. En fait cela depend de ce que doit faire le php. Si c'est pour réagir a une fonction javascript la réponse est non.


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 23-05-2001 à 13:53:15    

javascript y tourne sur le client normalement.
php lui tourne sur le serveur.
 
tu peux faire tourner javascript surle serveur avec l'option script runat=server.
 
 
ta variable javascript peut être refiler au serveur php par l'url comme avec le traitement de tes formulaire

Reply

Marsh Posté le 23-05-2001 à 14:35:07    

En fait ce que je voudrais faire c  
avoir 2 liste deroulante (le contenu de c liste vient de BD Mysql)
D'apres le choix de la premiere liste, la 2eme est modifiee pour n'afficher que ceux qui concorde.
Et sans reloade la page (avec Onchange quoi)
Si qqun a une idee,... :jap:  :)  
 :hot: Merci d'avance et A+ :hello:  :hello:


---------------
Moi, quand on m'en fait trop j'correctionne plus : j'dynamite, j'disperse, j'ventile. (tontons flingueurs)
Reply

Marsh Posté le 23-05-2001 à 16:06:40    

en fait il existe plein de solution, voici celle que j'ai utilisé :
 
  1° a faire en php coté serveur
    a. lister les elements de la liste 1 et les mettre dans la liste avec en value l'identifiant des elements.
 
    b. lister tout les elements de la liste 2 (pour tout les cas possible de choix dans la liste 1), il faut les stocker dans un tableau javascript sous la forme suivante : id + nom.
 
    c. determiner la taille de la liste 2 (comme le nombre d'elements de la liste va varier en fonction du choix de la liste 1, il faut connaitre la taille max de la liste 2 car les listes ne sont pas redimensionnables, il faut donc que des le depart la liste soit assez grande).
 
  2 javascript coté serveur
   
  c'est la qu'on met a jour la liste en fonction des evenements
 
===========================================================

Reply

Marsh Posté le 23-05-2001 à 16:14:56    

voila le code html et javascript (retrouvé dans un sujet posté le 20 avril de cette année) par moi meme :
 
pour toi, il te suffit de mettre à jour les ligne du bas en php :
 
liste 1 : aa(id_element_1,nom_element_1);
       => aa(0,"pays" );
 
liste 1 : ab(id_element_1,id_element_2,nom_element_2);
       => ab(0,2,"france" );
 
id_element_1 : identifiant des elements de la liste 1
nom_element_1 : nom des elements de la liste 1 (chaine de caracteres)
id_element_2 : identifiant des elements de la liste 2
nom_element_2 : nom des elements de la liste 2 (chaine de caracteres)
 

Code :
  1. <html>
  2. <head>
  3.   <title>Liste deroulantes</title>
  4.   <style>
  5.     select{font-family:courier new}
  6.     form{margin-top:0em}
  7.   </style>
  8. </head>
  9. <body>
  10. <script language="javascript">
  11.   var na=0;
  12.   var ta=new Array();
  13.   var nb=0;
  14.   var tb=new Array();
  15.   var nbm=0;
  16.   function ea(i,t) {
  17.     this.id=i;
  18.     this.texte=t;
  19.     this.taille=0;
  20.     }
  21.   function eb(a,i,t) {
  22.     this.ida=a;
  23.     this.id=i;
  24.     this.texte=t;
  25.     ta[a].taille=ta[a].taille+1;
  26.     if (ta[a].taille>nbm) nbm=ta[a].taille;
  27.     }
  28.   function aa(i,t) {
  29.     ta[na]=new ea(i,t);
  30.     na++;
  31.     }
  32.   function ab(a,i,t) {
  33.     tb[nb]=new eb(a,i,t);
  34.     nb++;
  35.     }
  36.   function ia() {
  37.     var s="";
  38.     for (var i=0;i<na;i++) {
  39.       s=s+"<option value=\""+ta[i].id+"\">"+ta[i].texte+"</option>";
  40.       }
  41.     return(s);
  42.     }
  43.   function ib() {
  44.     var s="";
  45.     for (var i=0;i<nb;i++) {
  46.       if (ta[0].id==tb[i].ida) {
  47.         s=s+"<option value=\""+tb[i].id+"\">"+tb[i].texte+"</option>";
  48.         }
  49.       }
  50.     for (var i=ta[0].taille;i<nbm;i++) {
  51.       s=s+"<option value=\"x\"></option>";
  52.       }
  53.     return(s);
  54.     }
  55.   function ca() {
  56.     var n=document.all.liste_a.options[document.all.liste_a.selectedIndex].value;
  57.     var nc=0;
  58.     for (var i=0;i<nbm;i++) {
  59.       document.all.liste_b.options[i].value="x";
  60.       document.all.liste_b.options[i].text="";
  61.       }
  62.     for (var i=0;i<nb;i++) {
  63.       if (n==tb[i].ida) {
  64.         document.all.liste_b.options[nc].value=tb[i].id;
  65.         document.all.liste_b.options[nc].text=tb[i].texte;
  66.         nc++;
  67.         }
  68.       }
  69.     }
  70.   aa(0,"ville" );
  71.   aa(1,"region" );
  72.   aa(2,"pays" );
  73.   ab(0,0,"montbeliard" );
  74.   ab(0,1,"belfort" );
  75.   ab(0,2,"paris" );
  76.   ab(1,0,"franche comté" );
  77.   ab(1,1,"ile de france" );
  78.   ab(2,0,"france" );
  79.   ab(2,1,"italie" );
  80.   ab(2,2,"espagne" );
  81.   ab(2,3,"danemark" );
  82. </script>
  83. <select name="liste_a" onChange="ca()"><script language="javascript">document.write(ia())</script></select>
  84. <select name="liste_b" ><script language="javascript">document.write(ib())</script></select>
  85. </body>
  86. </html>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed