这个问题更多与我希望在“SCALE”方面实现的过程/逻辑相关,而不是如何编写代码。
在WordPress中,我有几个以HTML形式加载的表单,当用户创建一个自定义文章(对于不熟悉CMS的人来说,实际上是一个新的数据库条目)来记录一个新的“事件”时加载。我不想手动映射所有内容,因为这是使用update_post_meta()
来设置数据库条目/文章的名称和值 - 所以当提交表单时,我使用php循环foreach ($_POST as $name => $value) {
来填充此事件的所有数据库表。
这个方法很好,但是现在,如果用户保存表单并稍后回来编辑它,我希望如果存在值,像这样回显:
<label for="reported_by">报告人(全名)</label> <?php $reported_by = get_post_meta($incident_id, 'reported_by', true); ?> <input type="text" name="reported_by" value="<?php echo $reported_by; ?>">
同样,这个方法也很好,但是我在这个页面上有近500个字段,所以为每个字段手动设置唯一变量(在这种情况下是$reported_by
)将花费我很长时间,而且基本上会增加代码库近50%,使其难以维护且效率低下。
对于如何解决这个问题有什么想法吗?可以理解的是,我可以通过php构建表单并在HTML中回显,但是这也感觉像一个非常手动的过程。PHP是服务器端的,所以我不能轻松地在客户端获取标签/输入的名称值,除非使用AJAX,但我觉得这也会变得相当手动。
所以无论如何,我都面临着很多重复劳动,除非有一种方法可以使这个过程更容易扩展到所有500个字段,而不需要我手动设置变量名。
谢谢您的时间!
Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1
| 本站CDN由 数掘科技 提供
首先要注意的是,你实际上并不需要为每个表单输入项创建一个不同命名的局部变量。也就是说,不需要这样写:
你可以这样写:
为什么这样有帮助呢?因为现在只有两个与此输入项相关的内容:
这两个都只是字符串,所以很容易提取到PHP变量中:
这些看起来很像参数,所以让我们把它变成一个函数,同时记得也传入
$incident_id
: