PHP, formulaire et innerHTML

ExeQTd Messages postés 2 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 24 février 2009 - 23 févr. 2009 à 11:36
ExeQTd Messages postés 2 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 24 février 2009 - 24 févr. 2009 à 09:20
Bonjour à tous,

Je suis actuellement confronté à un petit souci technique. Autant le dire tout de suite, je suis débutant dans le monde du web 2.0 et je compte sur vous pour éclairer ma lanterne. Je vais essayer d'être le plus exhaustif possible dans ma question...

J'ai créé un formulaire en xhtml, mais ce formulaire se doit d'être dynamique afin de refléter les modifications des utilisateurs.
Ce dynamisme se retrouve au sein d'un tableau comportant différents champs de saisie de type texte simple. Toutes ces données sont enregistrées dans une base de données Oracle et sont susceptibles d'être mises à jour via ce tableau. Pour les requêtes à cette base, j'emploie systématiquement un script PHP communiquant avec ma page via xmlHttpRequest
Dans un premier temps, pour afficher le tableau, je dispose d'une fonction charger qui va envoyer une clé via xmlHttpRequest à un fichier PHP, qui renverra le résultat de la requête en format texte. Cette réponse qui n'est autre que le tableau en question est incluse à la page grâce à innerHTML.
Le gros du problème vient de la soumission du formulaire après modification. Ici, on utilise pas d'objet xmlHttpRequest, mais une soumission simple de formulaire. Il s'agit grosso modo de la fonction enregistrer. Visiblement, tous les champs insérés via innerHTML ne sont pas reconnus lors de la soumission. En effet, la variable $_POST ne contient pas les variables contenues dans ces champs. Pire, aucune entrée correspondante n'est attribuée dans $_POST. Les autres champs, non soumis à innerHTML, sont très bien reconnu et la mise à jour se déroule sans souci.

Mon impression personnelle, mais restant celle d'un débutant web2.0, est que innerHTML ne s'intègre pas dans le formulaire. On obtient le résultat escompté en visualisation, mais en terme de fonctionnement, la partie dynamique n'est reconnu que par Javascript sur le client, au moment de passer sur PHP, elle reste inconnue au bataillon.

J'ai lu sur d'autres posts que de mettre un tableau pour attribut name de l'input (ex. <input type="text" name="n[]"...) pourrait éventuellement corriger le problème, mais je ne suis pas convaincu dans mon cas. D'autres encore parlent de greffer les node avec Javascript sur html...

Pouvez-vous m'aider ou me donner quelques explications ou confirmations?

Merci d'avance

1 réponse

ExeQTd Messages postés 2 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 24 février 2009
24 févr. 2009 à 09:20
Bonjour,

Petite mise à jour concernant le message précédent.

Après avoir testé quelques solutions, j'ai constaté les résultats suivants :

- Passer le name de l'input en format tableau n'arrange pas la situation.
- Modifier la page html en script php et faire le post du formulaire sur $php_self n'arrange rien non plus.

Ces tests me font arriver à la conclusion suivante :
Si on utilise AJAX avec innerHTML pour compléter dynamiquement un formulaire, alors on a d'autre choix que d'utiliser AJAX (javascript) pour transmettre les données du formulaire. Bien entendu, on retrouve quelque chose de fonctionnel mais on doit taper plus de code :-)

Bref, tout ce qu'il me manque, c'est une confirmation que la méthode innerHTML ne complète pas le "fonctionnel" du formulaire.

Merci
0
Rejoignez-nous