首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CodeIgniter购物车页面上的表单验证

CodeIgniter购物车页面上的表单验证
EN

Stack Overflow用户
提问于 2015-01-27 22:58:33
回答 1查看 570关注 0票数 0

CodeIgniter v2.1.2

我有一个非常简单的CodeIgniter购物车页面设置,按照CodeIgniter文档

然而,这个购物车页面显示了购物车中的许多产品,用于编辑每个产品数量的input元素都分配了如下name属性:1[qty]2[qty]3[qty]4[qty]5[qty]等等。

代码语言:javascript
复制
<input name="1[qty]" type="text" ...
<input name="2[qty]" type="text" ...
<input name="3[qty]" type="text" ...
<input name="4[qty]" type="text" ...
<input name="5[qty]" type="text" ...
.... 

根据CodeIgniter文档,这是一种方案,而且它似乎工作得很好,因为POST数组自动以正确的格式来轻松地更新购物车。

代码语言:javascript
复制
$this->cart->update( $this->input->post() );

cart->update()似乎会忽略任何无效的输入。换句话说,购物车只在数量是数值时才更新。但是,我认为我需要将CodeIgniter表单验证应用到购物车页面。也许我不需要它,我也对你的想法感兴趣。

在我的Controller中,我通常使用set_rules按字段名设置规则,当我有一个未知的字段数时,我不知道字段name参数中会出现什么。

文档显示我可以声明数组上的验证。,但我无法让下面的代码为我工作。我试过[qty][][qty]和其他几个。如果不工作,我的意思是当购物车页面上的数量字段包含无效数据时,它们不会出现验证错误,并且它总是通过验证并命中update()函数。

代码语言:javascript
复制
$this->load->library('form_validation');
$this->form_validation->set_rules('[][qty]', 'Quantity', 'numeric|strip_tags|xss_clean');

if ($this->form_validation->run() === TRUE) // passed validation -> submission
{
    // update the cart
    $this->cart->update( $this->input->post() );
    ....
}
else
{
    // display validation errors
    ....
}
  • 如果字段的数量是动态的,并且正如上面所描述的那样,那么如何对cart页面应用验证呢?
  • 我甚至需要验证数量字段吗?cart数据暂时存储在会话中,当它被传递到cart->update()函数时,无效数据似乎被自动删除。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-29 00:24:41

由于我不知道如何在数组上声明验证,所以我使用for循环根据购物车中根据count($this->cart->contents())值的唯一行项的数量在每个"QTY“字段上声明规则。(与$this->cart->total_items()不同,计算所有内容,包括单行项的倍数。)

控制器..。

代码语言:javascript
复制
$this->load->library('form_validation');

for ($i = 1; $i <= count($this->cart->contents()); $i++)
{
    $this->form_validation->set_rules($i . '[qty]', 'Item #' . $i . ' quantity', 'numeric|strip_tags|xss_clean');
}

在这种情况下,我仍然无法确认是否需要表单验证。通常,需要服务器端验证来保护数据库免受不良数据的影响或安全性。在这种情况下,cart->update()函数似乎自动拒绝无效条目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28181619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档