codeigniter表单设置值?

时间:2011-05-25 03:00:56

标签: php forms codeigniter

我必须知道..

$this->form_validation->set_value('first_name')

相同
$this->input->post('first_name')

他们似乎都得到了输入值。如果我正在验证输入,那么第一个更安全吗?

4 个答案:

答案 0 :(得分:7)

如果在第二个参数中设置了一个默认值,则

set_value()可以返回默认值,如果未使用表单验证库验证该字段,则不会返回任何内容,而$this->input->post()将返回{{ 1}}值,即使验证库未处理该字段。

如果已对输入运行“prep”规则,则两个函数都将返回修改后的值。

如果您想阅读帖子值,只需使用$_POST$this->input->post()类型函数(例如set_value()set_select())实际上会返回set_checkbox()之类的内容而不是实际的输入值,因此这不适用于复选框,无线电和选择。

答案 1 :(得分:4)

set_value()用于在验证失败后重新填充表单。没有额外的过滤,因此如果您不需要将值传回表单,则应使用$this->input->post()

答案 2 :(得分:3)

我认为你指的是这个:

<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />

在这种情况下,set_value只是在验证错误上重新填充字段。这样:

$this->input->post('first_name');

仅获得$_POST的{​​{1}}值。

答案 3 :(得分:2)

使用先前的验证库,validation->first_nameinput->post(‘first_name’)可以互换,但新库不会再改变帖子值。