Passage de variable...multicodes (HTML PHP JS)

Passage de variable...multicodes (HTML PHP JS) - HTML/CSS - Programmation

Marsh Posté le 11-05-2006 à 15:35:56    

Bonjour,
 
Attention, accrochez vous, un truc trop chaud à faire (encore...oui, je sais!) et pas simple à expliquer, mais je vais essayer d'être clair:
 
J'affiche dans une boucle while en php une série de listes déroulantes HTML (déjà la 1ère phrase...). Cette liste déroulante affiche des valeurs récupérées d'une base SQL via du code PHP.
Je voudrais maintenant utiliser le js pour que lorsque l'on sélectionne une valeur dans une des listes affichées, ça ouvre une nouvelle fenêtre et que via le js ça passe la valeur sélectionnée.
 
Avec un peu de code et bcp résumé, ça donne ceci:
 

Code :
  1. <?php
  2. //Début boucle while
  3. while (...) {
  4. ?>
  5. <SELECT name="AffProduit" id="?????" onchange=openwindow(??????)>
  6. <?php
  7. echo("<option value=".$res_sel['Id_Produit']." >
  8. ?>
  9. </SELECT>
  10. <?}
  11. //Fin boucle while
  12. ?>


 
Ma fonction openwindow appelle plusieurs fois la méthode getElementById() pour récupérer des variables et les envoie dans une nouvelle fenêtre...
 
J'ai donc déjà vu comment en js ouvrir ma nouvelle fenêtre et passer des valeurs dedans et maintenant je voudrais attribuer un id différent à chaque SELECT généré par le while et ainsi envoyer dans openwindow l'id du SELECT sur lequel je vais cliquer (enfin activer le onchange). Vous me suivez?
 
Vous allez me dire je n'ai qu'à faire
<SELECT .....id="idselect" onchange=openwindow(idselect)>
 
Eh ben non, ça marche pas parce que quand mon while m'affiche plusieurs SELECT, je ne passe toujours que l'id du 1er select.
 
Alors j'ai essayé autre chose, j'ai déclaré une variable globale NumIdselect en js; variable que j'incrémente à chaque occurence de la boucle while. Maintenant j'aimerais faire un truc du style:
 
<SELECT .....id="NumIdselect" onchange=openwindow(NumIdselect)>
 
Mais ça marche pas, IE me répond que NUmIdselect n'es pas définie, alors que c'est une variable globale!
 
Comment mettre du js dans du html????
 
Merci à ceux qui ses seront pas endormis avant la fin de ce message...et qui en plus me répondront!

Reply

Marsh Posté le 11-05-2006 à 15:35:56   

Reply

Marsh Posté le 11-05-2006 à 16:42:56    

Citation :

Alors j'ai essayé autre chose, j'ai déclaré une variable globale NumIdselect en js; variable que j'incrémente à chaque occurence de la boucle while. Maintenant j'aimerais faire un truc du style:
 
<SELECT .....id="NumIdselect" onchange=openwindow(NumIdselect)>
 
Mais ça marche pas, IE me répond que NUmIdselect n'es pas définie, alors que c'est une variable globale!


 
Tu mélanges tout.
 
Si NumIdselect est bien une variable PHP elle n'existe que côté serveur uniquement.
 
Ce qu'il te faut, c'est que dans la boucle while (Php) tu génères un id différent à chaque itération.
 
Je suis pas très fort en php, j'espère qu'il n'y a pas d'erreur de syntaxe :
 

Code :
  1. <?php
  2. //Début boucle while
  3. $NumIdselect = 0; // initilisation
  4. while (...) {
  5.   $nomSelect = 'debutNom'.$NumIdselect;
  6. ?>
  7.   <SELECT name="AffProduit" id="<?= $nomSelect ?>" onchange="openwindow('<?= $nomSelect ?>')">
  8.   ...
  9.   </SELECT>
  10. <?
  11.   $NumIdselect++;
  12. }
  13. //Fin boucle while
  14. ?>


 
Un exemple de ce que ça peut donner comme page générée

Code :
  1. <SELECT name="AffProduit" id="debutNom0" onchange="openwindow('debutNom0')">
  2.   ...
  3.   </SELECT>
  4.   <SELECT name="AffProduit" id="debutNom1" onchange="openwindow('debutNom1')">
  5.   ...
  6.   </SELECT>
  7.   <SELECT name="AffProduit" id="debutNom2" onchange="openwindow('debutNom2')">
  8.   ...
  9.   </SELECT>
  10.   <SELECT name="AffProduit" id="debutNom3" onchange="openwindow('debutNom3')">
  11.   ...
  12.   </SELECT>
  13.   <SELECT name="AffProduit" id="debutNom4" onchange="openwindow('debutNom4')">
  14.   ...
  15.   </SELECT>

Reply

Marsh Posté le 11-05-2006 à 17:52:15    

OK, ton truc a l'air de marcher. Mais je fais comment pour passer l'id dans la fonction openwindow du js?
 
Voici ma fonction:
 

Code :
  1. function openwindow(num) {
  2. var infos = document.getElementById('???????').value;
  3. var popup = window.open('Sel_depcont.php?infos='+infos, 'Deplacement','width=300,height=200,resizable');
  4. }


 
Tu vois, maintenant que l'id a un nom variable, je mets quoi dans le getElementById?
 
C'est pour ça que j'aurais voulu faire une variable js qui s'incrémente en même temps que $NumIdselect.
 
Style un truc document.getElementById('debutNom[NumId]').value;
 
et NumId est une variable js égale à $NumIdselect...

Reply

Marsh Posté le 11-05-2006 à 17:59:58    

OK, je viens de résoudre tous mes pbs.
 
Il fallait juste que ma variable infos recoive num.
 
Ca marche maintenant. Grand merci de ton coup de pouce, ça m'a bien dépanné!

Reply

Marsh Posté le 11-05-2006 à 18:01:28    

Code :
  1. function openwindow(nom) {
  2.   // arrivé ici, le parametre nom contient une chaine de caractère
  3.   //   égale à l'id du <select> qui a appelé
  4.   var infos = document.getElementById(nom).value;
  5.   var popup = window.open('Sel_depcont.php?infos='+infos, 'Deplacement','width=300,height=200,resizable');
  6.    
  7.     }

Reply

Sujets relatifs:

Leave a Replay

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