Cette question est plus liée au processus/logique que je souhaite implémenter en termes de « SCALE » qu'à la façon d'écrire le code.
Dans WordPress, j'ai plusieurs formulaires qui se chargent au format HTML pour enregistrer un nouvel "événement" lorsque l'utilisateur crée une publication personnalisée (en fait une nouvelle entrée de base de données pour ceux qui ne sont pas familiers avec le CMS) le temps de charger. Je ne veux pas tout mapper manuellement car cela utiliseupdate_post_meta()
来设置数据库条目/文章的名称和值 - 所以当提交表单时,我使用php循环foreach ($_POST as $name => $value) {
pour remplir toutes les tables de base de données pour cet événement.
Cela fonctionne bien, mais maintenant, si l'utilisateur enregistre le formulaire et revient pour le modifier plus tard, je souhaite que la valeur soit renvoyée comme ceci si elle existe :
Encore une fois, cette approche fonctionne bien, mais j'ai près de 500 champs sur cette page, donc définir manuellement des variables uniques (dans ce cas$reported_by
) pour chaque champ me prendrait beaucoup de temps et augmenterait essentiellement la base de code de près de 50 %, ce qui la rendrait difficile à entretenir et inefficace.
Des idées sur la façon de résoudre ce problème ? Naturellement, je peux créer le formulaire via php et le faire écho en HTML, mais cela ressemble également à un processus très manuel. PHP est côté serveur, donc je ne peux pas facilement obtenir la valeur du nom de la balise/entrée côté client, à moins d'utiliser AJAX, mais j'ai l'impression que cela deviendrait également assez manuel.
Quoi qu'il en soit, je suis confronté à beaucoup de duplication d'efforts, à moins qu'il n'existe un moyen de rendre ce processus plus facile à adapter aux 500 champs sans m'obliger à définir manuellement les noms des variables.
Merci pour votre temps !
La première chose à noter est que vous n'avez pas réellement besoin de créer une variable locale nommée différemment pour chaque entrée de formulaire. Autrement dit, inutile d'écrire ainsi :
Vous pouvez écrire comme ceci :
Pourquoi est-ce utile ? Parce que maintenant il n'y a plus que deux éléments liés àcetteentrée :
Ces deux ne sont que des chaînes, si faciles à extraire dans des variables PHP :
Ceux-ci ressemblent beaucoup à desparamètres, alors transformons cela en fonction, en n'oubliant pas de transmettre également
$incident_id
: