Bonjour à tous !
J'ai regardé quelques tutos AJAX sur developpez.com, et j'ai mis en application tout ce que j'ai appris à ce sujet en créant un petit site.
Après ça je me suis mis à un plus "gros" projet, en commençant par un formulaire d'inscription.
J'utilise pour ce faire le framework prototype, en passant par un Ajax.Request lors de la validation du formulaire.
Seulement j'ai un petit problème à rendre ceci utilisable plus largement que de taper le nom de chacun des ID utilisés dans les "parameters" du Ajax.Request.
En gros, dans le formulaire, un code PHP constitué d'un mysql_query puis d'une boucle de mysql_fetch_array, génère un div avec un input checkbox, suivi de plusieurs inputs "radio", qui eux-mêmes affichents des inputs "text" suivant l'input "radio" sélectionné. (ça va, je n'explique pas trop mal ?)
Ces inputs "radio" et "text", j'aimerais tous pouvoirs les envoyer suivant que le premier checkbox soit sélectionné ou pas ! Le problème c'est qu'en envoyant ceux-ci par la méthode Ajax.Request, je ne peux prévoir le nombre de fois que la boucle se fera (étant donné que tout dépend du nombre d'entrée dans la DB), et donc les noms d'ID que les inputs porteront...
Par exemple, j'ai un div contenant un input checkbox, et s'il est sélectionné il affichera 3 inputs radios
"option 1", "option 2", "option 3", qui eux-mêmes sélectionnés, afficheront chacuns 2 inputs text.
Pour le code javascript, j'ai fait ça très "salement", en créant en php le code javascript, ajoutant à chaque boucle des event pour les inputs checkbox et radios, et en créant à chaque boucle une fonction qui affichera les bons inputs text, suivant l'input radio sélectionné !
(pfiou...)
Donc voilà en gros mon problème
J'aimerais envoyer tous ces éléments en "parameters", sans pour autant les connaître à l'avance.
Est-ce faisable ? J'espère que oui, sinon je vais devoir faire tout ça en form+php bien statique, et recharger la page si une chose a été oubliée (beurk)
(Si besoin, je peux faire un screenshot du formulaire proprement dit ! Il n'est pas en ligne)
Merci d'avance !
Partager