1

我有一个表单,(在前一页上)用户可以选择他们想要包含多少项目。提交第二个页面后,它会通过一个验证脚本运行,该脚本接受需求、字段名称以及在验证中发生错误时返回的消息。

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 }
} ?>
....

我遇到的问题是,当前构建的脚本是为了处理单个元素(一个名为“名称”的字段等)。php验证器获取所有POST元素并将它们分解为字段以进行验证,我正在努力弄清楚如何修改验证脚本本身(我有点犹豫,因为它会改变整体结构验证器检查元素名称本身是否是一个数组然后循环)或者我可能没有考虑一种更简单的方法来处理实际的 $rules 创建部分。

注意:似乎我唯一关心的是 a 字段是必需的,但我想基本上通过与任何其他字段相同的验证选项(必需、仅数字、电子邮件等)传递阵列项目,所以我不想要复制理论上已经存在的代码。

感谢您提供的任何帮助。

4

1 回答 1

1

既然你已经在两边都做了一个循环,为什么不直接使用 , 等名称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.";
    }
}
于 2012-07-30T22:35:24.407 回答