Problème de variable PHP dans un script JS

Problème de variable PHP dans un script JS - HTML/CSS - Programmation

Marsh Posté le 08-08-2005 à 16:18:15    

Salut tout le monde !!  
 
Voilà, j'ai créé un formulaire SELECT (liste déroulante) comprenant les famille des produits et j'aimerai que lorsque la personne sélectionne une famille, le navigateur affiche sous la liste déroulante les produits de cette famille. Voici mon code :
 

Code :
  1. while ($famProd = mysql_fetch_row($resu)) {
  2.             $Nom = $famProd[0];
  3.             $num = $famProd[1];
  4.             $inter = $inter. "<option selected value=$num>$nom <br> ";
  5.             $Choix = "  <select name=Famille> onChange = 'javascript:filltheselect(this.$num)'
  6.                       $inter
  7.                       </option>
  8.                   </select>";   
  9.          }


 
Code de la fonction :  
 
 
 

Code :
  1. function filltheselect ($numero) {
  2.        
  3.       $req1 = "SELECT LibelléProduit from Produit where FamilleProduit_idFamilleProduit = $numero ";
  4.       $resu1 = mysql_query($req1);
  5.        
  6.       if ($resu1) {
  7.          while ($Produit = mysql_fetch_row($resu1)){
  8.             $Nom = $Produit[0];
  9.             $code = " $nom";
  10.             echo "$code";
  11.    
  12.              
  13.          }   
  14.          
  15.       }
  16.        
  17.    
  18.    }


 
Là ça ne peut pas marcher car on ne peut pas envoyer une variable PHP dans un script JS. Mais comment puis-je faire alors ??  
J'ai trouvé un lien intéressant dans la FAQ du site mais il ne traitait pas mon cas précis.  
 
Bref, un grand merci à ceux qui pourront m'aider parce que là je bloc complet

Reply

Marsh Posté le 08-08-2005 à 16:18:15   

Reply

Marsh Posté le 08-08-2005 à 16:23:10    

Tu as un manque de rigueur evident ... et cela n'a rien a voir avec le manque de pratique que tu as certainement si tu debutes. Ton premier bloc de code est un ensemble de balises mal formées, mal fermées et qui se chevauchent.

Reply

Marsh Posté le 08-08-2005 à 16:27:08    

En effet, je débute, le code est mal indenté mais marche toutefois (sauf l'appel de la fonction car c'est impossible de faire ce que je fais, mais je vois pas comment faire).

Reply

Marsh Posté le 08-08-2005 à 16:27:08    

C'est vrai il y a du bon mélange de grand mére..
 
-> <select>
     <option value></option>
   </select>
 
Ce sera déja mieux

Reply

Marsh Posté le 09-08-2005 à 09:23:48    

Non non, j'ai bien fait :
<select>  
     <option value></option>  
   </select>  
 
seulement la variable de l'option est déclaré avant la syntaxe. Bref, le problème ne viens pas de là de toute façon...  
 
Personne ne peut m'aider SVP ?!?

Reply

Marsh Posté le 09-08-2005 à 10:18:19    

Tu es pas obligé de faire en JS les fonctions en PHP sa existe et sa marche...

Reply

Marsh Posté le 09-08-2005 à 11:11:30    

Non non, il me semble que le JS est obligatoire car on doit recharger la page en PHP, hors, il faut qu'en sélectionnant une ligne dans une liste cela entraine l'insertion de lignes dans une autre liste. Il me semble que pour réaliser une telle opération il faut utiliser "onChange"

Reply

Marsh Posté le 09-08-2005 à 11:31:43    

Ouaip...

Reply

Marsh Posté le 09-08-2005 à 13:10:49    

http://developpeur.journaldunet.co [...] iste.shtml
 
par exemple.
 
Dans ta page, tu doit faire une requette en php qui vas te permetre de remplir les tableaux JS ...
 
@+


---------------
:Moultiplayers:.:Quatuor Chevalier:.:Admin G15-france.com:.:Wiki -G15-france:.:-Papa-:.
Reply

Marsh Posté le 09-08-2005 à 14:11:33    

C'est pour un intranet...?

Reply

Marsh Posté le 09-08-2005 à 14:11:33   

Reply

Marsh Posté le 09-08-2005 à 14:18:49    

Non non J_lecruel, c'est pour un site Internet. Si t'es dans la parage bl@p, comment on remplie un tableau JS avec du PHP, sinon je file chercher la réponse sur le net, en tout cas merci du lien, il m'a l'air parfait !

Reply

Marsh Posté le 09-08-2005 à 15:49:59    

Bon bon bon... J'ai trouvé un lien intéressant pour remplir un tableau javascript avec PHP :
 

Code :
  1. script>
  2. var t=new Array();
  3. <? for($i=0;$i<sizeof($result);$i++) echo "t[$i]=".$result[$i].";\n";?>
  4. </script>


 
et l'on obtient :
 

Code :
  1. <script>
  2. var t=new Array();
  3. t[0]="contenu0";
  4. t[1]="contenu1";
  5. t[2]="contenu2";
  6. etc...
  7. </script>


 
Par conséquent j'ai donc fait  
 

Code :
  1. $req1 = "SELECT `LibelléProduit` FROM `Produit` WHERE `FamilleProduit_idFamilleProduit` = '".$code."'";   
  2. $result = mysql_num_rows($req1);


 
mais ma variable $code est vide, il faudrait qu'elle contienne le résultat du "value" de la ligne sélectionné dans la première liste, mais la question est "Comment faire ?"
 
J'ai beau cogiter, je vois pas  :cry:

Reply

Marsh Posté le 10-08-2005 à 08:36:53    

Montre ton code en entier, je crois que tu as des problèmes de compréhension entre les niveaux d'exécution coté serveur et coté client.


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 10-08-2005 à 09:31:55    

Je vous donnes quelques détails avant quand même.
J'ai utiliser le code que j'ai trouvé sur le lien de bl@p_psx (d'ou les noms 'ChoixPays'...). J'utilise des modules donc en gros il faut que tout mon code soit dans la variable $CONTENTSTRING_FULL. la variable $Choix contient ma première liste.  
 

Code :
  1. <?
  2. $req = 'SELECT idFamilleProduit, LibelléFamille from FamilleProduit where MacroFamille_idMacroFamille = 1 ORDER BY LibelléFamille';
  3. $resu = mysql_query($req);
  4.       $k = 0;
  5.       $inter = $CONTENTSTRING_FULL;
  6.       if ($resu) {
  7.          while ($famProd = mysql_fetch_row($resu)) {
  8.           $num = $famProd[0];
  9.             $nom = $famProd[1];
  10.             $inter = $inter. "<option selected value=$num>$nom <br> ";
  11.             $Choix = "  <select name='choixPays' onChange='remplirVilles(this.options[this.selectedIndex].value);'>
  12.                       $inter
  13.                       </option>
  14.                   </select>"; //remplirVille   
  15.          }
  16.       }
  17.  
  18. $script="<script language='JavaScript'>
  19. function verif()
  20.   {
  21.   if (document.layers)
  22.     {
  23.     formulaire = document.forms.monFormulaire;
  24.     }
  25.   else
  26.     {
  27.     formulaire = document.monFormulaire;
  28.     }
  29.   }
  30. function verifChoixPays()
  31.   {
  32.   verif();
  33.   if (formulaire.choixPays.value == '0')
  34.     {
  35.     alert('Vous devez tout d\'abord choisir un pays!');
  36.     formulaire.choixPays.focus();
  37.     }
  38.   }
  39. var villes = new Array();
  40. villes[0] = new Array();
  41. villes[1] = new Array('Paris', 'Lyon', 'Marseille')
  42. villes[2] = new Array('Londres', 'Manchester', 'Liverpool')
  43. villes[3] = new Array('Berlin', 'Stutgart', 'Munich')
  44. function remplirVilles(code)
  45.   {
  46.   verif();
  47.   var lesVilles = villes[code];
  48.  
  49.   if (code>0)
  50.     {
  51.     formulaire.choixVille.options.length = lesVilles.length;
  52.     for (i=0; i<lesVilles.length; i++)
  53.       {
  54.       formulaire.choixVille.options[i].value = lesVilles[i];
  55.       formulaire.choixVille.options[i].text = lesVilles[i];
  56.       }
  57.     document.monFormulaire.choixVille.options.selectedIndex = 0;
  58.     }
  59.   else
  60.     {
  61.     formulaire.choixVille.options.length = 1;
  62.     formulaire.choixVille.options[0].value = 0;
  63.     formulaire.choixVille.options[0].text = '-- choisissez une ville';
  64.     }
  65.   }
  66. </script>       
  67. <form name='monFormulaire'>
  68. $Choix
  69. <br>
  70. <br>
  71. <select name='choixVille' onFocus='verifChoixPays();'>
  72. <option value='0' selected>-- choisissez une ville</option>
  73. </select>
  74. </form>";
  75. $val = "<script language='JavaScript'>document.getElementById('choixPays') .option[0]</script>";
  76. $req1 = "SELECT `LibelléProduit` FROM `Produit` WHERE `FamilleProduit_idFamilleProduit` = '".$val."'";   
  77.  //$result = mysql_num_rows($req1);
  78.  
  79.    
  80.       $CONTENTSTRING_FULL = "<b><h1>$code Matériels d'occasions</h1></b><br><br><div align='center'> Type de produit : \t </div><div align='center'> $script</div>$val";
  81. ?>


En gros j'ai deux solutions, soit j'arrive à remplir un tableau javascript en PHP, ou soit j'arrive à mettre dans une variable php la 'value' de ma liste sélectionné.

Reply

Sujets relatifs:

Leave a Replay

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