繁体   English   中英

在codeigniter中的form_open

[英]form_open in codeigniter

我有一个看起来像这样的网址:

http:// localhost / store / mens / category / t-shirts / item / at-shirt

我有一个名为store的类,这时在我的应用程序中已调用item函数,并且有关产品的某些数据已在页面上输出。

我需要允许用户将项目添加到购物篮中。 我知道CI提供了一个库来帮助解决此问题,并且我建立了一个简单的类,它将与该库交互以创建购物车功能。 问题是我不明白如何将表单提交到购物车类,然后返回具有完整参数的当前网址,如上。 使用方法:

<?= form_open('cart/addItem',array('class' => 'basketForm')); ?>

提交到正确的类,但是之后我没有机制可以返回产品页面。

我能想到的唯一方法是将网址发送到购物车类,并在购物车工作完成后重定向。...或使用AJAX ...,但是两者似乎都像黑客一样可以正常工作。

有没有一种干净的方法可以做到这一点?

使用以下两种方法之一重定向到引用页面:

1.仅在控制器中:

<?php
class Cart extends CI_Controller {
    public function addItem()
    {
        // ... add to cart here
        redirect($_SERVER['HTTP_REFERER']);
    }
}

2.从视图中,告诉控制器您要在哪里去:

<!-- Form view //-->
<?= form_open('cart/addItem',array('class' => 'basketForm')); ?>
<?= form_hidden('next_URI', current_url()); // requires URL_helper ?>
...
<?= form_submit('', 'Add to Cart'); ?>
<?= form_close(); ?>


<?php
// Controller
class Cart extends CI_Controller {
    public function addItem()
    {
        // ... add to cart here
        redirect($this->input->post('next_URI'));
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM