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');

刚刚获得$_POSTfirst_name 值。

【讨论】:

【参考方案2】:

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

【讨论】:

我对输入进行了修剪,当我使用 set_value('email') 时,会修剪重新填充的字段。所以我不认为 set_value() 没有过滤效果。【参考方案3】:

set_value() 如果在第二个参数中设置了一个默认值,则可以返回一个默认值,如果该字段未使用表单验证库验证,则不会返回任何内容,而$this-&gt;input-&gt;post() 将返回 $_POST 值,即使验证库未处理该字段。

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

当你想读取一个帖子值时,只需使用$this-&gt;input-&gt;post()set_value() 类型的函数,如set_select()set_checkbox() 实际上会返回类似selected="selected" 的东西,而不是实际的输入值,所以这赢了不适用于复选框、单选和选择。

【讨论】:

set_value() 对于数组 $_POST 值的行为也不同。简而言之 - 它用于重新填充表单,仅此而已。【参考方案4】:

在之前的验证库中,validation-&gt;first_nameinput-&gt;post(‘first_name’) 可以互换,但新库不再更改 post 值。

【讨论】:

以上是关于codeigniter 表单设置值?的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 表单设置值?

Codeigniter:如何构建使用表单验证和重新填充的编辑表单?

CodeIgniter - 如何将表单中的值发布为 NULL 而不是 0

如何根据codeigniter中的时间戳获取数据?

翻译 CodeIgniter 的表单验证错误消息

CodeIgniter:提交无效表单后如何保留值?