Page 1 sur 1

AJAX, div, input, et formulaire...

Posté : 03 août 2007, 20:41
par kmeleon
Salut à tous,

J'ai un formulaire donc je veux séparer les différentes étapes. Les étapes sont affichées grâce à une fonction AJAX qui récupère le contenu du formulaire (avec les inputs et compagnie), tout en envoyant les données des inputs du formulaire en cours. La partie "Récupération des données du formulaire demandé" marche niquel, seulement lorsque je change d'étape, Firefox me plante sur une erreur assez bête:

Code : Tout sélectionner

Erreur : document.forms.form_tabs.elements.article_title has no properties Fichier source : http://127.0.0.1/scripts/ajax.js Ligne : 193
Et cette ligne correspond à:

Code : Tout sélectionner

xhr6.send("refer=1&action=stage_change&previous_stage=stage2&stage="+form+"&article_title="+document.forms["form_tabs"].elements["article_title"].value+"&article_intro="+document.forms["form_tabs"].elements["article_intro"].value);
Pour expliquer un peu, j'ai un <div id="form_tabs"></div>, dont le contenu varie en fonction de l'étape demandée - tout ça dynamiquement avec AJAX qui va envoyer les données contenues dans les <input> du formulaire de l'étape en cours, tout en demandant le formulaire correspondant à l'étape demandée.

D'où le :

Code : Tout sélectionner

[...] action=stage_change&previous_stage=stage2&stage="+stage+" [données des inputs...]
Maintenant, si je récupère la totalité d'un formulaire (<form name="form_tab_numéro_de_l'étape"></form> compris), lorsque je changerai d'étape, il me dira que le formulaire "form_tab_numéro_de_l'étape" n'a pas de propriétés. Si je met le formulaire en dehors du div, le formulaire est bien reconnu (du moins les deux balises <form></form>), mais le contenu que j'apelle avec AJAX (ici, des inputs) n'est pas reconnu.

Je schématise histoire de voir si je me suis fait comprendre :)

Code : Tout sélectionner

<form><div>[contenu avec inputs - Lien suivant, précédent]</div></form>
Là je clique sur suivant, les valeurs des inputs sont censées être récupérées, sauf que ce n'est pas le cas...

D'où peut provenir l'erreur ?
Bonne soirée

EDIT: Ok, c'est résolu, le problème venait du fait que je changeais le div d'affichage du formulaire pendant l'envoi des données (par un gif de chargement), donc le xhr.send arrivait après le changement du div, et donc les inputs n'existaient déjà plus. J'ai donc déclaré mes variables avant le traitement AJAX :)

Merci quand-même
Bonne journée