如何使用javascript for codeigniter删除会话中的项目?

时间:2014-08-06 17:14:48

标签: javascript php codeigniter

我正在开发一个购物车php(codeigniter)项目。所以我在会话中添加了项目,如下面的代码。问题是,我想在结帐页面中删除会话中的项目。

但当然我无法调用php函数来删除javascript中的会话,这意味着,当单击删除按钮时,我该怎么办(不限制使用ajax,简单是最好的),我可以删除会议中的项目?感谢

   if ($this->form_validation->run()) {
                    if ($this->session->userdata('purchase') !== false)
                        $purchase_list = $this->session->userdata('purchase');
                    else
                        $purchase_list = array();

                    $purchase = array(
                        'id' => $product[0]['id'],
                        'quantity' => $this->input->post('quantity')
                    );

                    if ($this->input->post('opt1') !== false)
                        $purchase['opt1'] = $this->input->post('opt1');

                    if ($this->input->post('opt2') !== false)
                        $purchase['opt2'] = $this->input->post('opt2');

                    array_push($purchase_list, $purchase);
                    $this->session->set_userdata('purchase', $purchase_list);
                    redirect('cart');
                }

2 个答案:

答案 0 :(得分:0)

来自CodeIgniter的session class documentation

这假设您了解您的购物车,并知道在结帐场景中实际取消设置会话数据的位置。

您可以使用以下语法在会话中设置所需项目的值:

$this->session->set_userdata('purchase', null); // will set the purchase session data to null

你只知道通过

设置为null的键

答案 1 :(得分:0)

您可以在控制器中定义一个功能以取消设置会话,例如

    class Controllername extends CI_Controller {

    function index(){}

    function reset_session(){
$sesion_variable = 'name_of_session';
    $this->session->unset_userdata($session_variable);
    }

    }

你可以通过CURL或ajax调用它。在结帐页面