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?
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,
mais plutôt voila le bon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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é !
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 bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager