【发布时间】:2012-11-24 22:45:04
【问题描述】:
我正在使用 CodeIgniter 2.1.3。我正在尝试将现有应用程序转换为 CI 应用程序。批量编辑数据时是否可以使用form_validation功能?我现在的表格是这样的:
foreach($cash_flow as $key => $value) {
?>
<tr>
<td><input type="text" name="historical[<?php echo $value->id; ?>]" value="<?php echo set_value('historical['. $value->id .']', $value->historical); ?>" /></td>
...
</tr>
}
我还有其他几个字段,但所有输入名称都是数组格式,括号中包含记录/行 ID (values->id)。根据 CI 文档,如果我在输入名称中使用数组,我也必须在验证规则中使用数组。我该怎么做?我是否需要创建一个循环(类似于上面)并遍历我的数据并使用数组括号中的记录 ID?像这样:
foreach($input_arr as $key) {
$this->form_validation->set_rules('historical['. $key .']', 'Historical Value', 'required|clean_dec');
....
}
我试过了,但没有用。它只是为每条记录输出一个 CI 验证错误,说明该字段是必需的。我很感激任何帮助。谢谢!
【问题讨论】:
-
你的 foreach 不应该是 $input 作为 $key => $value 吗?
-
我不这么认为,因为关键将是我在表单中设置的记录 ID:
name="historical[3608]"。 -
假设 $input_arr = 发布的历史数组,如果你想在历史[3608] 上设置一个规则,你需要在你的 foreach 中做 key => value for key 等于 3608。否则 key 将是等于history[3608]的值
-
啊,我觉得自己很愚蠢——我完全错过了。那。如果您想将此添加为答案,我会投票并使其成为公认的答案。谢谢!
-
没问题。它很容易错过。我只需要用所有这些疯狂的多维数组做一个巨大的项目,所以它在我的脑海里很新鲜。
标签: php forms codeigniter