Salam,
J'ai une page qui contient bcp d'informations ,ainsi qu'un formulaire , ce formulaire poste ces informations à une page qui fait un petit traitement ,
Est ce qu'il ya une methode pour poster un formuaire par AJAX?
Version imprimable
Salam,
J'ai une page qui contient bcp d'informations ,ainsi qu'un formulaire , ce formulaire poste ces informations à une page qui fait un petit traitement ,
Est ce qu'il ya une methode pour poster un formuaire par AJAX?
Ben pas vraiment...
Tu as bien form.elements que tu peux enumerer pour en obtenir les valeurs mais ca n'envoie pas les fichiers...
Salam,
Est ce que vous pouvez m'expliquer d'avantage ?
A la volée, des correction doivent peut-être être apportées :Code:
1
2
3
4
5
6
7
8
9
10 function getDataFromForm(Form) { var data="" for (key in Form.elements) { data+=escape(key)+"="+escape(Form.elements[key].value)+"&"; } return data.substr(0, data.length-1); } // utilisation, ne marche pas avec les input file xhr.send(getDataFromForm(document.forms["NAME"]);
Salam,
Ok merci FremyCompany !
Salam,
mais plutôt voila le bon code :
Code:
1
2
3
4
5
6
7
8 function getDataFromForm(Form) { var data=""; var key=0; for (key=0;key<Form.elements.length;key++) { data+=escape(Form.elements[key].name)+"="+escape(Form.elements[key].value)+"&"; } return data.substr(0, data.length-1);
Salam,
mais il me reste comme même un petit problème : il y'a un <select> dont l'attribut value me donne une chiane vide même si je choisis une ligne non vide ?
Et comme ca ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 function getDataFromForm(Form) { var data=""; var key=0; for (key=0;key<Form.elements.length;key++) { var currentValue=(Form.elements[key].tagName.toLowerCase()=="select")?getSelectValue(Form.elements[key]):Form.elements[key].value data+=escape(Form.elements[key].name)+"="+escape()+"&"; } return data.substr(0, data.length-1); } function getSelectValue(select) { var value=""; for (var i=0; true; i++) { if (select.option[i]) { if (select.options[i].selected) { value += select.options[i].value + ","; } } else {return value.substr(0, value.length-1); } } }
Salam,
Le prolème etait dans l'attribut value que j'ai précisé !:oops: :oops:
Merci encore une fois FremyCompany .
[edit] Oui votre code aussi marche bien FremyCompany !
Bonjour à tous
Désolé de déterrer ce vieux post, mais j'ai un petit pb relatif a ce sujet :
Si je fais
tout va bienCode:
1
2
3
4
5
6
7
8
9 [...] req.send(getDataFromForm(document.forms["myform"])); [...] <form name="myform" method="post" action="javascript:submitForm()"> [...] <input name="gen" type="submit" value="Commencer" /> </form> <div id="zoneajax"> </div>
Mais dans mon cas précis j'ai besoin que le formulaire soit DANS la zone qu'ajax va modifier. C-a-d que j'ai besoin de
Hors là, ben ça marche plus car javascript ne connait plus document.forms["myform"].Code:
1
2
3
4
5
6
7
8
9
10 [...] req.send(getDataFromForm(document.forms["myform"])); [...] <div id="zoneajax"> <form name="myform" method="post" action="javascript:submitForm()"> [...] <input name="gen" type="submit" value="Commencer" /> </form> </div>
J'ai remplacé par document.GetElementById("zoneajax").forms["myform"]... sans succès.
Une petit idée ?
Bonjour, je déterre le sujet qui vient de m'être très utile, et j'ajoute ma modeste pierre à l'edifice pour obtenir quelque chose qui ressemble un peu plus a un champ $_POST qu'on a l'habitude de traiter
Code:
1
2
3
4
5
6
7
8
9 function getDataFromForm(Form) { var data="" for (key in Form.elements) { if (Form.elements[key].checked) { data+ = escape( Form.elements[key].name) + "=" + escape( Form.elements[key].value ) + "&"; } } return data.substr(0, data.length-1); }