2012-06-06 4 views
0

J'ai cherché sur SO pendant un certain temps, donc je m'excuse si une question similaire est posée et répondue, mais je ne crois pas qu'il existe. J'utilise un script de validation PHP et jQuery Validate pour traiter tous les formulaires sur mon site. Avec des champs connus, pas de problèmes. Cependant, il existe des pages dans lesquelles un utilisateur peut entrer des informations supplémentaires sur les personnes.Comment valider un formulaire dynamique avec PHP?

Un utilisateur est invité à entrer les noms de ses membres dans un formulaire. L'utilisateur peut soumettre le formulaire ou choisir d'ajouter d'autres membres de la famille au formulaire. Je n'ai pas encore compris comment parcourir correctement tous les champs et afficher des messages uniques basés sur les entrées des utilisateurs dans jQuery, mais je sais que je peux le faire avec les métadonnées et le plugin de validation.

Mon problème réside avec PHP. Je peux prendre chaque tableau et exécuter si foreach boucles, cependant, si une erreur est trouvée dans le champ ANY, une erreur est générée et le formulaire est affiché à nouveau avec toutes les données précédemment saisies des champs. Je suis incapable de déterminer comment pointer les données d'origine de chaque champ car les champs sont construits dynamiquement lorsque des erreurs apparaissent.

La méthode la plus simple que je peux venir avec la démonstration est la suivante:

Un utilisateur doit entrer les pourcentages de tarte, il veut que ses amis à manger. Il doit donner 100% de son gâteau. L'utilisateur peut choisir de dynamiquement ajouter des amis à son extravagance manger de tarte, mais chaque personne doit recevoir au moins 1% de la tarte et ils doivent tous manger ensemble 100%.

Sample code

J'ai créé un exemple de script ici qui montre la configuration de forme, mais de toute évidence il n'y a pas de back-end PHP pour tester. Vous aurez besoin d'utiliser votre imagination, le backend fonctionne (j'ai ajouté dans les commentaires dans le HTML). Le même principe s'appliquera avec la variable PHP SESSION puisque ces données devraient être transmises de page en page (si un utilisateur revient sur cette page, les montants entrés pour chaque partie de la tarte devraient s'afficher). En outre, je pense que cela va de soi, mais ces données DOIT être validé côté serveur.

+0

Donc, vous aurez un tableau de données d'entrée, certaines d'entre elles non valides, et vous devez construire un formulaire qui est pré-rempli avec lui? Vous venez de faire une boucle et de construire un élément de formulaire pour chacun d'eux. Quel semble être le problème? – Okonomiyaki3000

+0

@ Okonomiyaki3000 - Le formulaire est déjà construit puis les champs dynamiques sont ajoutés. Suggérez-vous une fois que la page est rechargée (et donc validée), en présence d'une erreur pour ignorer le code de formulaire existant et simplement construire un nouveau formulaire avec les champs que j'ai déjà collectés? – JM4

+0

Oui. (Ce commentaire doit comporter au moins 15 caractères) – Okonomiyaki3000

Répondre

0

Ne rechargerez-vous pas la page en cas d'erreur PHP? Dans ce cas, vous connaissez l'index de l'erreur dans la boucle foreach, enregistré dans une variable - probablement un tableau pour gérer plusieurs erreurs. Lorsque vous réimprimez les options et que vous parcourez à nouveau le tableau soumis, ne pouvez-vous pas ajouter une classe css supplémentaire à la zone de texte lorsque vous atteignez un nombre figurant dans votre tableau d'erreurs.

+0

Avez-vous vu l'exemple de code? La page est en cours de rechargement, l'action de formulaire est définie pour se recharger mais les index sont nommés tableaux. Ce qui est de déterminer quelle section du tableau dynamique est montré et mieux encore, combien de champs dynamiques ont été générés avant. – JM4

Questions connexes