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