[RESOLU] [Javascript/PHP] Formulaire dynamique

Alors voici mon pb :

J’ai un formulaire “form_inscription”.
Dans ce formulaire, j’ai un select, avec une liste d’activité, chacune ayant une id unique. Lorsque l’on choisi une activité, grâce à OnChange, je lance une fonction yavascript “addactivite()”

Attention, là ça se corse, et je doute que ça soit la bonne méthode.

Mon javascript récupére l’id de cette activité, lance un php avec une méthode file(“id_activite”) ajax (ce n’est pas moi qui l’ai faite, je vais copier/coller le code ci-après). Ce fichier php va vérifier en BDD si cette activité posséde des sous-activités (qui vont être des input checkbox, des input text…), ça l’écrit en html. Une variable JS récupére tout ce code de formulaire, le place dans une div. Le formulaire s’affiche bien selon mon activité choisie. je clique sur un bouton pour l’ajouter, celà récupére les différent champs input, et par un systéme similaire, est sauvegardé. J’efface le div (innerHTML=’’). Mes inputs ajoutés ont donc disparu. je resélectionne une autre activité avec des sous activités, tout se déroule comme prévu.

MAIS. (je bloque dessus depuis 10h du mat, ce mais mériterait d’être gras en rouge vif).

Lorsque je veux ajouter une autre activité, qui n’a pas de sous activité, donc qui ne génére aucun code HTML, donc pas d’input, keutchi, lorsque je clique sur ajouter, le javascript récupére des données des anciens input (!!!), alors qu’ils n’existent plus !!! ET BORDEL, ça marche sous IE !!! et pas sous FF B)((

Alors lorsque je fais mon innerHTML=’’, j’me suis dis “peut être qu’il sauvegarde les valeurs quelque part”. j’ai donc carrément rajouté des “delete document.form_inscription.text_sousact_0”… Sans succés.

Si quelqu’un a une idée …

function file(fichier) {
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject(“Microsoft.XMLHTTP”);
else
return(false);
xhr_object.open(“GET”, fichier, false);
xhr_object.send(null);
if(xhr_object.readyState == 4) return(xhr_object.responseText);
else return(false);
}

Ma façon de récupérer les input (y’en a 6 max, donc j’me suis pas cassé)

if(document.form_inscription.text_sousact_0 && document.form_inscription.text_sousact_0.value != ‘’)
ct = document.form_inscription.text_sousact_0.value;

si quelqu’un a une idée B) Merci !

Je te suggère d’installer Venkman et Firebug sous FF comme ça tu pourras mettre des breakpoints dans ton JS et voir ce qui ne va pas.
Les liens :
Venkman
Firebug

Bon courage B)

j’connaissais pas venkman.

Mais j’ai aucune erreur JS avec Firebug. Je teste ton plug-in.

Bon, j’ai testé Vanmachin, c’est assez complexe quand même.
Enfin, en clair j’ai toujours pas trouvé B)

HELLlpppp B)

Tu n’utilises pas getElementById ? Ça permet de faire référence selon l’ID d’une balise indépendamment d’un formulaire, ça va pas forcément résoudre ton problème mais c’est plus pratique à utiliser que document.form_inscription.text_sousact_0.

Peut-on voir le formulaire en ligne ?

[quote=“Moe, post:5, topic: 45170”]Tu n’utilises pas getElementById ? Ça permet de faire référence selon l’ID d’une balise indépendamment d’un formulaire, ça va pas forcément résoudre ton problème mais c’est plus pratique à utiliser que document.form_inscription.text_sousact_0.

Peut-on voir le formulaire en ligne ?[/quote]

héhé c’est justement s’que j’suis en train d’essayer de faire, mais je sais pas parcourir ça ^^;; je cherche B)

C’est un travail pour l’entreprise, j’ai pas l’droit de donner l’adresse du serveur de test B)

B) B) :smiley: :smiley:
YEEEEEEEEEEEEEEEEEEEEEEEEEEESSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS !!!
:stuck_out_tongue: :- :stuck_out_tongue: :stuck_out_tongue:

ça marche par cette méthode !!!

mais n’empéche que, je ne comprends toujours pas d’où vient le pb. La gestion des formulaires est surement différente entre FF et IE… FF semble mettre en mémoire les valeurs des inputs, avec une espéce d’id spéciale unique, qui ne fait pas référence au name du input (ni à son id).

Bref, ça fait plaisir. (surtout quand c’est un truc que le client demande rajouter quand tout était fini… Stagiaire, et ils font déjà suer :smiley: )

Salut tout le monde.
Merci pour ces topics, ils m’ont fort bien aidés.

Seulement, lorsque j’envoie le formulaire par la fonction mail de php, les valeurs des champs “ajoutés” n’apparraissent pas dans le mail.

Pouvez vous m’indiquer la procédure à suivre pour récupérer tout ça?

Merci d’avance.