codeigniter 表单设置值?
Posted
技术标签:
【中文标题】codeigniter 表单设置值?【英文标题】:codeigniter form set value? 【发布时间】:2011-09-01 10:07:45 【问题描述】:我必须知道..
是
$this->form_validation->set_value('first_name')
和
一样$this->input->post('first_name')
?
他们似乎都得到了输入值。如果我验证输入,第一个更安全吗?
【问题讨论】:
我认为第二个比第一个更好.. 【参考方案1】:我想你指的是这个:
<input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
在这种情况下,set_value
只是在验证错误时重新填充该字段。这个:
$this->input->post('first_name');
刚刚获得$_POST
的first_name
值。
【讨论】:
【参考方案2】:set_value()
用于在验证失败后重新填充表单。它没有额外的过滤,因此如果您不需要将值传递回表单,则应使用$this->input->post()
。
【讨论】:
我对输入进行了修剪,当我使用 set_value('email') 时,会修剪重新填充的字段。所以我不认为 set_value() 没有过滤效果。【参考方案3】:set_value()
如果在第二个参数中设置了一个默认值,则可以返回一个默认值,如果该字段未使用表单验证库验证,则不会返回任何内容,而$this->input->post()
将返回 $_POST
值,即使验证库未处理该字段。
如果对输入运行了“准备”规则,这两个函数都将返回修改后的值。
当你想读取一个帖子值时,只需使用$this->input->post()
,set_value()
类型的函数,如set_select()
和set_checkbox()
实际上会返回类似selected="selected"
的东西,而不是实际的输入值,所以这赢了不适用于复选框、单选和选择。
【讨论】:
set_value()
对于数组 $_POST 值的行为也不同。简而言之 - 它用于重新填充表单,仅此而已。【参考方案4】:
在之前的验证库中,validation->first_name
和 input->post(‘first_name’)
可以互换,但新库不再更改 post 值。
【讨论】:
以上是关于codeigniter 表单设置值?的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter:如何构建使用表单验证和重新填充的编辑表单?