我正在研究一个购物车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');
}
您可以在控制器中定义一个函数来取消会话设置,例如
class Controllername extends CI_Controller {
function index(){}
function reset_session(){
$sesion_variable = 'name_of_session';
$this->session->unset_userdata($session_variable);
}
}
可以通过CURL或ajax调用。结帐页面
来自CodeIgniter的会话类文档
假设您了解购物车,并且知道在结帐场景中在哪里实际取消会话数据。
您可以使用以下语法设置会话中所需项的值:
$this->session->set_userdata('purchase', null); // will set the purchase session data to null