【问题标题】:How to handle form validation and bulk editing with CodeIgniter?如何使用 CodeIgniter 处理表单验证和批量编辑?
【发布时间】: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-&gt;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


【解决方案1】:

在您设置验证规则的控制器中, 将您的 foreach 更改为:

foreach($input_arr as $key => $value):

【讨论】:

    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多