Codeigniter验证POST和数组数据

时间:2016-05-28 03:51:33

标签: php codeigniter validation

我正在尝试验证两个数组

$this->form_validation->set_data();

和POST数据

$this->form_validation->set_rules();

使用相同的方法...

尝试在我的控制器中使用这两种验证类型时,似乎数组验证正在从POST字段中删除所有数据。我正在使用JS抓取订单行项目并将它们作为JSON和解码发送(从不是表单一部分的表中,但是将值添加到隐藏的表单字段以使用post仍然获取),并添加了客户详细信息在表格本身内。

我遇到的问题是我编写的每个验证(POST和数组)都可以独立完成,但是当尝试同时运行时,在页面上提交POST数据(通过$this->form_validation->set_rules()进行验证)正在丢失。

由于隐藏字段未以相同方式验证,因此数据将被保留...

1 个答案:

答案 0 :(得分:0)

任何人在查找之后都需要知道这一点(在发布问题之前花了这么长时间)

对于您设置的每个验证组,您必须先使用$this->form_validation->run()运行验证,然后再转到下一个组/方法。

要验证POST数据,请创建所有规则,然后立即运行:

    // Order Post Validations
    $this->form_validation->set_rules("firstname", "First Name", "trim|required");
    $this->form_validation->set_rules("lastname", "Last Name", "trim|required");
    //run this section
    $this->form_validation->run();

然后继续,

    $this->form_validation->set_data($ValidationData);
    $this->form_validation->set_rules($ValidationRules);

    //run this section
    $this->form_validation->run();

结果CI将覆盖您在设置新组时所做的任何现有验证(即使尝试将它们作为单独的阵列/组一起运行)。