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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Récupérer les valeurs d'inputs dans un javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Récupérer les valeurs d'inputs dans un javascript

n°1584396
nixnbk
Strip the flesh salt the wound
Posté le 10-07-2007 à 10:09:39  profilanswer
 

Bonjour,
 
Je suis actuellement en train de résoudre un problème de formulaire :
 
En gros:
J'ai un formulaire de recherche avec un champ de texte, et un champ select (avec une valeur par défaut).
 
Mon fichier javascript surveille le 'onsubmit' de mon formulaire, et lance la fonction de recherche. Le problème est que, dans javascript, j'arrive pas a récupérer les VALEURS de mes inputs.
 
Par exemple, si je recherche 'toto' avec l'option 'musique', bah j'arrive pas a le récupérer dans mon javascript. Donc ma recherche retourne vide  + vide.
 
J'utilise prototype.js, pour me simplifier la vie, et j'ai testé avec les fonction Form.Element.getValue ... mais ca marche pas non plus.
 
Quelqu'un aurait une idée ?
 
Merci d'avance :)


Message édité par nixnbk le 12-07-2007 à 05:02:19

---------------
I'll feed your skin snacks to my cockatiel!
mood
Publicité
Posté le 10-07-2007 à 10:09:39  profilanswer
 

n°1584560
olivthill
Posté le 10-07-2007 à 14:04:39  profilanswer
 

getValue ?
Edit: J'ai lu trop vite, et je n'avais pas vu que c'était une listbox et non pas un champ de saisie ordinaire.


Message édité par olivthill le 10-07-2007 à 14:06:55
n°1585003
olivthill
Posté le 10-07-2007 à 23:00:41  profilanswer
 

Excusez-moi pour ma réponse tronquée de ce midi.
Peut-être que vous avez trouvé la réponse entre temps.
La question n'est pas très claire, parce qu'il n'y a pas de code associé, et donc on ne sait pas comment sont définis les champs de saisie et la listbox, ni quel code a été écrit pour tenter de récupérer les valeurs.
Quoi qu'il en soit, une méthode courante est d'utiliser
 
     document.GetElementByID("id_associé_au_champ_input" ).value
 
pour récuper la valeur des champs de saisie, et d'utiliser .options[].value pour récupérer la valeur de l'option sélectionnée dans la listbox. Voici un petit exemple :

<html>
<html>
<head>
<script language="JavaScript">
function test_lstbox_item(l1) {
   var nom = document.getElementById("input_name" ).value;
   alert(nom)
   var option_val, option_text;
   if (l1.options.selectedIndex>=0) {
      option_val = l1.options[l1.options.selectedIndex].value;
      alert(option_val);
      option_text = l1.options[l1.options.selectedIndex].text;
      alert(option_text);
   }
}
</script>
</head>
<body>
<form name=myform>
Nom: <input type=text id="input_name" size=20>
<select name="lstbox1" size=1 onchange="test_lstbox_item(this)">
<option value="a">Abricot
<option value="b">Banane
<option value="c" selected>Cerise
<option value="d">Datte
</select>
</form>
</body>
</html>


Message édité par olivthill le 10-07-2007 à 23:02:46
n°1585030
nixnbk
Strip the flesh salt the wound
Posté le 11-07-2007 à 03:25:27  profilanswer
 

J'ai essayé cette fonction ca marche pas :(
 
je vais mettre un peu de code pour que ca soit plus clair :
 
en gros j'ai ce bout de code dans mon search.php :

Code :
  1. <form id="search_form" name="search_form">
  2. <br>
  3. <div id="search_div">
  4. <label for="search" id="search_label"> Search:</label>
  5. <input name="search_input"  type="text" id="search_input"/>
  6. <select name="search_options" id="search_options" size="1">
  7.                         <option selected value="option_default">default</option>
  8.                         <option value="option 1">option 1</option>
  9.                         <option value="option 2">option 2</option>
  10.                         <option value="option 3">option 3</option>
  11.                         <option value="option 4">option 4</option>
  12.                   </select>
  13. <input type="submit" value="Search Now!" name="button" id="search_submit"/>
  14. </div> 
  15. </form>


 
et a coté de ça, j'ai une fonction javascript qui correspond a ça dans mon fichier javascript :

Code :
  1. function showResult()
  2. {
  3. tname=document.getElementById("search_input" ).value;
  4. tcity=document.getElementById("search_options" ).value;
  5. xmlHttp=GetXmlHttpObject();
  6. if(xmlHttp==null)
  7. {
  8.  alert ("Browser does not support HTTP Request" );
  9.  return;
  10. }
  11. var url="getResult.php";
  12. url=url+"?Name="+tname;
  13. url=url+"&City="+tcity;
  14. url=url+"&page=1";
  15. url=url+"&sid="+Math.random();
  16. xmlHttp.onreadystatechange=stateChanged ;
  17. xmlHttp.open("GET",url,true);
  18. xmlHttp.send(null);
  19. }
  20. function stateChanged()
  21. {
  22. if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete" )
  23. {
  24.  document.getElementById("txtResult" ).innerHTML=xmlHttp.responseText ;
  25. }
  26. }
  27. function GetXmlHttpObject()
  28. {
  29. var objXMLHttp=null;
  30. if (window.XMLHttpRequest)
  31. {
  32.  objXMLHttp=new XMLHttpRequest();
  33. }
  34.  else if (window.ActiveXObject)
  35. {
  36.  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP" );
  37. }
  38. return objXMLHttp;
  39. }
  40. function init(){
  41. Event.observe($('search_div'),'submit',showResult,false);
  42. }
  43. Event.observe(window,'load',init,false);


 
Et en gros la fonction marche, puisque si j'initialise a la main mes deux variables tname et tcity, j'ai un résultat correct.
Le seul probleme est de récupérer les valeurs de search_input et de search_option.
 
Je suis en train d'essayer de bidouiller avec une autre fonction qui récupère les valeurs de search_input et search_option onkeypress et onchange.
Plus d'infos plus tard ^^.


---------------
I'll feed your skin snacks to my cockatiel!
n°1585031
nixnbk
Strip the flesh salt the wound
Posté le 11-07-2007 à 04:31:35  profilanswer
 

J'ai une autre idée pour résoudre mon problème, mais ya encore un blème de variables.
 
Voila : j'appelle une fonction qui modifie la valeur de mes variables des que je change quelque chose dans mon form (en utilisant onkeyup="fonctionjavascript(search_input.value,search_options.value)" et onchange=fonctionjavascript(search_input.value,search_options.value))
 
Cette fonction change juste la valeur de mes variables tname et tcity.
 
Le problème c'est que quand je submit mon form, les valeurs tname et tcity sont réinitialisée a zero.
 
Yaurait un moyen de récupérer ces variables ?

n°1585170
olivthill
Posté le 11-07-2007 à 13:51:09  profilanswer
 

Pour récupérer (du côté du serveur, je présume) ces variables modifiées par le javascript (du côté du client), il suffit de les placer dans des champs du "form" qui sera "submité". Pour que ces champs ne gênent pas l'écran, on peut les déclarer avec "type=hidden". Par exemple.
 

...
function ....
{
...
   document.search_form.H_tname.value=tname;
   document.search_form.H_tcity.value=tcity;
 
   search_form.submit();
 
   return true;
}
...
<form id="search_form" name="search_form">
   <input type=hidden id=H_tname value="">
   <input type=hidden id=H_tcity value="">
...
</form>

n°1585509
nixnbk
Strip the flesh salt the wound
Posté le 12-07-2007 à 05:00:46  profilanswer
 

trouvé autre solution, un peu crade, mais qui marche :
Dans mon search.php j'ai :  

Code :
  1. <input name="search_input"  type="text" id="search_input" onkeypress="notallowed(event,search_input.value,search_options.value);"/>
  2. ...
  3. ...
  4. <input type="button" value="Search Now!" name="button" id="search_submit" onclick="showResult(search_input.value,search_options.value,1);"/>


 
 
et dans mon .js... je triche a mort ^^
 

Code :
  1. var xmlHttp;
  2. function notallowed(event,strname,strcity)
  3. {
  4.     // Compatibilité IE / Firefox
  5.     if(!event && window.event) {
  6.         event = window.event;
  7.     }
  8.     // IE
  9.     if(event.keyCode == 13) {
  10.         event.returnValue = false;
  11.         event.cancelBubble = true;
  12.  showResult(strname,strcity,1);
  13.     }
  14.     // DOM
  15.     if(event.which == 13) {
  16.         event.preventDefault();
  17.         event.stopPropagation();
  18.  showResult(strname,strcity,1);
  19.     }
  20. }
  21. function showResult(tname,tcity,tpage)
  22. {
  23. xmlHttp=GetXmlHttpObject();
  24. if(xmlHttp==null)
  25. {
  26.  alert ("Browser does not support HTTP Request" );
  27.  return;
  28. }
  29. var url="getResult.php";
  30. url=url+"?Name="+tname;
  31. url=url+"&City="+tcity;
  32. url=url+"&page="+tpage;
  33. url=url+"&sid="+Math.random();
  34. xmlHttp.onreadystatechange=stateChanged ;
  35. xmlHttp.open("GET",url,true);
  36. xmlHttp.send(null);
  37. }
  38. function stateChanged()
  39. {
  40. if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete" )
  41. {
  42.  document.getElementById("txtResult" ).innerHTML=xmlHttp.responseText ;
  43. }
  44. }
  45. function GetXmlHttpObject()
  46. {
  47. var objXMLHttp=null;
  48. if (window.XMLHttpRequest)
  49. {
  50.  objXMLHttp=new XMLHttpRequest();
  51. }
  52.  else if (window.ActiveXObject)
  53. {
  54.  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP" );
  55. }
  56. return objXMLHttp;
  57. }
  58. function init(){
  59. Event.observe($('search_div'),'submit',function(e){
  60. } ,false);
  61. }
  62. Event.observe(window,'load',init,false);


 
Voila donc j'explique un peu :
J'ai trouvé un script qui annule l'effet de la touche Entrée dans le input (keycode==13), et au lieu de juste stopper l'effet de la touche entrée, je lui fait lancer la fonction ShowResult, avec les paramètres ^^.
 
Bref, maintenant ça marche. Merci Olivthill pour ton aide, même si ça à pas forcément servi. Je vais quand même tester ta fonction et voir ce que ca donne ;).


---------------
I'll feed your skin snacks to my cockatiel!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Récupérer les valeurs d'inputs dans un javascript

 

Sujets relatifs
[résolu] suppression d'une ligne dans un fichier txt[Résolu] Importer un fichier .xsl dans une BDD
[AS3] getChildAt at addChild [RESOLU]LibCurl [Résolu]
Bug Session en PHP [resolu][AS3]gestion d'évènement [RESOLU] mais autre problème
[Résolu] Script de backup Windows/Sambacreer un script a partir des valeurs d'un fichier
[RESOLU] [AS2] Probleme de matrice/classe[Résolu][Sharepoint] Sécuriser le lien "All site content"
Plus de sujets relatifs à : [Résolu] Récupérer les valeurs d'inputs dans un javascript


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