我正在开发一个购物车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');
}
答案 0 :(得分:0)
这假设您了解您的购物车,并知道在结帐场景中实际取消设置会话数据的位置。
您可以使用以下语法在会话中设置所需项目的值:
$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调用它。在结帐页面