javascript et formulaire

javascript et formulaire - HTML/CSS - Programmation

Marsh Posté le 09-11-2005 à 16:03:57    

:hello:  
 
bon, je n'utilise jamais de javascript ( [:yopyopyop] ) mais bon, là, je ne peux pas faire autrement.  
 
J'ai un formulaire de base dans lequel les visiteurs ont trois champs à remplir. L'un d'eux est le code ISBN d'un livre. Pour les aider à le trouver, je fais appel à un "popup" (re- [:yopyopyop] ) dans laquelle il peuvent faire une recherche et trouver l'ISBN correspondant.  
Comme je n'utilise jamais de javascript, je sèche. C'est sûrement une connerie mais je bloque [:spamafote]  
 
Le code dans la page parent :

Code :
  1. <html>
  2. <head>
  3. <title>Document sans titre</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="javascript">
  6. function popup(fic)
  7. { recherche=window.open(fic,'Choisir','width=400,height=250,top=50,left=50'); }
  8. </script>
  9. </head>
  10. <body>
  11. <form name="toto">
  12. <a href="javascript:popup('testpopup2.php')">ISBN :</a><input type="text" name="isbn"><br>
  13. </form>
  14. </body>
  15. </html>


 
la "popup" :

Code :
  1. <script language="javascript">
  2. function choisir(truc)
  3. { window.opener.document.forms[0].isbn.value = truc.options[truc.selectedIndex].value;
  4. self.close(); }
  5. </script>
  6. </head>
  7. <body>
  8. <form name="toto">
  9. <select name="choix" onChange="choisir(this)">
  10. <option value="">Choisissez</option>
  11. <option value="Ain">Ain</option>
  12. <option value="Aisne">Aisne</option>
  13. <option value="Allier">Allier</option>
  14. <!-- etc. -->
  15. </select>
  16. </form>
  17. <br />
  18. <form name="tutu">
  19. <input name="isbn" value="123456" type="text">
  20. <input type="button" value="ok" onChange="choisir(this)">
  21. </form>
  22. </body>
  23. </html>


 
Avec le premier formulaire (SELECT) la valeur est bien transmise dans le formulaire de la page parente, mais avec un champ texte (INPUT) de base, ca marche pas.
 
Oui, je sais, c'est ballot, mais je vois pas (et c'est pas faute d'avoir cherché)
 
Merci de votre aide
 :)


Message édité par bricocoman le 09-11-2005 à 16:05:11
Reply

Marsh Posté le 09-11-2005 à 16:03:57   

Reply

Marsh Posté le 09-11-2005 à 16:19:49    

Déjà le onChange dans un bouton ... avec qu'il soit appelé accroche toi!
 
 
Ensuite dans ta fonction tu passes à opener:

Code :
  1. truc.options[truc.selectedIndex].value;


 
Forcément il risque pas de récuperer la valeur de ton champ texte ...

Reply

Marsh Posté le 09-11-2005 à 16:21:06    

Question con : il est où truc dans ta popup?

Reply

Marsh Posté le 09-11-2005 à 16:27:07    

il est pas dans sa popup truc ...  
c'est document.forms[0].isbn.value  qui doit y être.

Reply

Marsh Posté le 09-11-2005 à 16:30:12    

je vous l'avais dit que je ne faisais jamais de javascript  :D
 
mais alors concrètement, c'est quoi la bonne solution ?
Je doit changer le onChange par autre chose ?


Message édité par bricocoman le 09-11-2005 à 16:32:22
Reply

Marsh Posté le 09-11-2005 à 16:45:19    

anapajari a écrit :

Déjà le onChange dans un bouton ... avec qu'il soit appelé accroche toi!
c'est un onClick qu'il faut utiliser sur un bouton ?
 
Ensuite dans ta fonction tu passes à opener:

Code :
  1. truc.options[truc.selectedIndex].value;


 
Forcément il risque pas de récuperer la valeur de ton champ texte ...


Reply

Marsh Posté le 09-11-2005 à 16:51:03    

oui c'est onclick mais ça résoudra que la moitié de ton problème.
Tu ne vas pas lui passer la valeur de ton input text si tu changes juste ce point.
 
Il faut qu'en fonction de ce qui appele choisir() tu passes la bonne valeur.
Alors soit tu joues avec l'objet this que tu passes en paramètre, soit tu fais 2 fonctions différentes ( ce qui est beaucoup plus facile pour quelqu'un qui fait jamais de javascript)

Reply

Marsh Posté le 09-11-2005 à 16:57:15    

anapajari a écrit :

oui c'est onclick mais ça résoudra que la moitié de ton problème.
Tu ne vas pas lui passer la valeur de ton input text si tu changes juste ce point.
 
Il faut qu'en fonction de ce qui appele choisir() tu passes la bonne valeur.
Alors soit tu joues avec l'objet this que tu passes en paramètre, soit tu fais 2 fonctions différentes ( ce qui est beaucoup plus facile pour quelqu'un qui fait jamais de javascript)


certes  [:mlc2]  [:tinostar]  
 
Chuis désolé, vraiment, mais même ça, c'est compliqué pour moi  [:spamafote]

Reply

Marsh Posté le 10-11-2005 à 10:15:24    

:hello:  
 
bon, j'ai essayé de bidouiller quelque chose, mais ça marche jamais.  [:spamafote]  
Je suis vraiment une buse en javascript.
 
Y'aurait pas une bonne âme qui puisse m'indiquer ce que je dois faire ?  :ange:

Reply

Marsh Posté le 10-11-2005 à 10:34:11    

Code :
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. function setValue(inpId){
  5. var inp = document.getElementById(inpId);
  6. if(inp.tagName == 'SELECT'){
  7. window.opener.document.forms[0].isbn.value = inp.options[inp.selectedIndex].value;
  8. } else if (inp.tagName == 'INPUT'){
  9. window.opener.document.forms[0].isbn.value = inp.value;
  10. }
  11. self.close();
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <form name="toto">
  17. <select name="choix" onChange="setValue('choix')" id="choix">
  18. <option value="">Choisissez</option>
  19. <option value="Ain">Ain</option>
  20. <option value="Aisne">Aisne</option>
  21. <option value="Allier">Allier</option>
  22. <!-- etc. -->
  23. </select>
  24. </form>
  25. <br />
  26. <form name="tutu">
  27. <input name="isbn" value="123456" type="text" id="isbn">
  28. <input type="button" value="ok" onClick="setValue('isbn')">
  29. </form>
  30. </body>
  31. </html>

Reply

Marsh Posté le 10-11-2005 à 10:34:11   

Reply

Marsh Posté le 10-11-2005 à 11:30:59    

Ah d'acord, je comprends mieux maintenant.
Merci beaucoup anapajari  :jap:  
(et aux autres aussi)
 

Reply

Marsh Posté le 10-11-2005 à 11:50:23    

anapajari a écrit :

Code :
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. function setValue(inpId){
  5. var inp = document.getElementById(inpId);
  6. if(inp.tagName == 'SELECT'){
  7. window.opener.document.forms[0].isbn.value = inp.options[inp.selectedIndex].value;
  8. } else if (inp.tagName == 'INPUT'){
  9. window.opener.document.forms[0].isbn.value = inp.value;
  10. }
  11. self.close();
  12. }
  13. </script>
  14. </head>
  15. <body>
  16. <form name="toto">
  17. <select name="choix" onChange="setValue('choix')" id="choix">
  18. <option value="">Choisissez</option>
  19. <option value="Ain">Ain</option>
  20. <option value="Aisne">Aisne</option>
  21. <option value="Allier">Allier</option>
  22. <!-- etc. -->
  23. </select>
  24. </form>
  25. <br />
  26. <form name="tutu">
  27. <input name="isbn" value="123456" type="text" id="isbn">
  28. <input type="button" value="ok" onClick="setValue('isbn')">
  29. </form>
  30. </body>
  31. </html>



 
nickel  ;)  
bon désolé, encore une question, si maintenant j'ai trois champs dans le formulaire au lieu d'un  :whistle: :D  
 

Code :
  1. <form name="tutu">
  2. <input name="isbn" value="123456" type="text" id="isbn">
  3. <input name="auteur" value="Jean Dupont" type="text" id="auteur">
  4. <input name="titre" value="le javascript pour les nuls" type="text" id="titre">
  5. <input type="button" value="ok" onClick="setValue('isbn')">
  6. </form>

Reply

Marsh Posté le 16-11-2005 à 14:41:01    

bricocoman a écrit :

nickel  ;)  
bon désolé, encore une question, si maintenant j'ai trois champs dans le formulaire au lieu d'un  :whistle: :D  
 

Code :
  1. <form name="tutu">
  2. <input name="isbn" value="123456" type="text" id="isbn">
  3. <input name="auteur" value="Jean Dupont" type="text" id="auteur">
  4. <input name="titre" value="le javascript pour les nuls" type="text" id="titre">
  5. <input type="button" value="ok" onClick="setValue('isbn')">
  6. </form>



 
je reviens à la charge  [:gilbert gosseyn]  
 
ça fait quelques jours que je galère pour faire passer les valeurs de trois INPUT au lieu d'un.  
j'ai bidouillé le javascript mais en vain :sweat:  
quelqu'un pourrait m'indiquer la marche à suivre?
 
 :jap:

Reply

Marsh Posté le 17-11-2005 à 15:03:09    

nobody :??:   :sweat:

Reply

Marsh Posté le 17-11-2005 à 15:27:31    

montres nous ce que tu as fais on te dira ce qui va pas ...
 

Reply

Marsh Posté le 17-11-2005 à 15:44:58    

j'ai bisouillé des trucs mais comme ça marchait pas, je les ai aps gardés. Voilà le dernier en date (merci de ne pas rire  :D )
 
page 1

Code :
  1. <html>
  2. <head>
  3. <title>test</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. <script language="javascript">
  6. function popup(fic)
  7. { recherche=window.open(fic,'Choisir','width=400,height=250,top=50,left=50'); }
  8. </script>
  9. </head>
  10. <body>
  11. <form name="toto">
  12. <a href="javascript:popup('test2.php')">test2</a>
  13. <input type="text" name="isbn">
  14. <input type="text" name="titre">
  15.   <br>
  16. </form>
  17. </body>
  18. </html>


 
page test2

Code :
  1. <html>
  2. <head>
  3. <script language="javascript">
  4. function setValue(inpId){
  5. var inp = document.getElementById(inpId);
  6. if(inp.tagName == 'INPUT'){
  7. window.opener.document.forms[0].isbn.value = inp.value;
  8. window.opener.document.forms[0].titre.value = inp.value;
  9. }
  10. self.close();
  11. }
  12. </script>
  13. </head>
  14. <body>
  15. <form name="tutu">
  16.   <input name="isbn" value="ISBN" type="text" id="isbn">
  17.   <input name="titre" value="javascript pour le très nuls" type="text" id="titre">
  18.   <br>
  19.   <br>
  20. <input name="button2" type="button" onClick="setValue('isbn','titre')" value="ok">
  21. </form>
  22. </body>
  23. </html>


 
les valeurs transmises sont les mêmes (celle d isbn)

Reply

Sujets relatifs:

Leave a Replay

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