codeigniter中的form_open

Mik*_*gin 0 php codeigniter

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

HTTP://本地主机/存储/男装/分类/ T恤/项目/ AT恤

我有一个名为store的类,此时在我的应用程序中调用了item函数,并在页面上输出了一些关于产品的数据.

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

<?= form_open('cart/addItem',array('class' => 'basketForm')); ?>
Run Code Online (Sandbox Code Playgroud)

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

我能想到的唯一方法就是将url发送到购物车类并在购物车完成后重定向....或者使用AJAX ......但两者看起来都很难实现.

有干净的方法吗?

lan*_*ons 7

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

1.仅在控制器中:

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

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'));
    }
}
Run Code Online (Sandbox Code Playgroud)