我有一个表单(在上一页上),用户可以选择要包含的项目数量。提交第二个页面后,将通过验证脚本运行该页面,该脚本包含需求、字段名以及在验证中发生错误时返回的消息。
if($numFieldSelectedearlier > 0) {
for($z=1; $z<=$numFieldSelectedearlier; $z++) {
$rules[] = "required,name,Name for item {$z} is required.";
}
}
在我的html表单中,该字段如下所示:
<form name="someForm" action="" method="post">
<?php if ($numFieldSelectedearlier > 0) {
for($y=1; $y <= $numFieldSelectedearlier; $y++) { ?>
<input type="text" name="name[]" id="name<?php echo $y; ?>" />
<?php }
} ?>
....
我遇到的问题是,该脚本目前是为处理单个元素(一个名为"name"的字段等)而构建的。php验证器获取所有POST元素,并将它们分解为字段来进行验证,我正在努力弄清楚如何修改验证脚本本身(考虑到它会改变验证器的整体结构,以检查元素名称本身是否是一个数组,然后循环通过),或者我可能没有考虑一种更简单的方法处理实际的$rules创建部分。
注意:我似乎唯一关心的是a字段是必需的,但我想基本上通过与任何其他字段相同的验证选项(必需、仅限数字、电子邮件等)来传递排列的项目,所以我不想重复理论上已经存在的代码。
感谢您提供的任何帮助。
既然您已经在两边进行循环了,为什么不直接使用name1
、name2
等名称并将规则链接到这些字段呢?
在HTML方面,您可以更改name
:
<input type="text" name="name<?php echo $y; ?>" ... />
在规则创建方面,您将绑定到这些字段名:
if($numFieldSelectedearlier > 0) {
for($z=1; $z<=$numFieldSelectedearlier; $z++) {
$rules[] = "required,name{$z},Name for item {$z} is required.";
}
}