我正在建立一个带有购物车的商业网站。
在大多数页面(即产品页面、类别页面)上,我想在侧边栏上显示购物车内容,当商品添加到购物车时,它将通过 AJAX 更新。
在“显示购物车”页面上,我想显示完整版本的内容。
显然,使用相同的模型和函数来获取和/或更新购物车似乎是合乎逻辑的,但是根据调用者页面将数据发送到不同的视图(侧边栏或完整购物车)。
问题是,在购物车模型中,我如何检测请求来自哪里。
我想我会检查请求是否来自 AJAX,如下所示:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') // i.e - the request came as AJAX
{
$this->load->view('cart_sidebar_view', $data);
}else{ /* not ajax */
$data['main_content'] = 'cart_view';
$this->load->view('includes/template', $data);
}
但这还不够好,因为我还想在“显示购物车”页面上使用 AJAX,以允许从那里更新购物车。
那么,有没有办法在购物车模型中检测请求来自哪里?或者我是否必须在每个“添加到购物车”或“删除”按钮的隐藏表单字段中发送该信息?