希望这不是一个愚蠢的问题。
我有一个电子商务网站,当用户将商品添加到购物车时。在页面顶部,我有这个函数来计算数组,然后向用户显示购物车中有多少商品。
然后我将总购物车价格存储在会话中,以便在页面顶部显示。
我正在使用Jquery将商品添加到购物车,但问题是您必须刷新页面才能看到总购物车商品和购物车总价格(在页面顶部。不是购物车页面。所以不要混淆它。)
我使用location.reload();
在Jquery中重新加载,但这会刷新自己的页面。
要显示用户在购物车中的商品数量,我执行了count
<?php echo count($_SESSION["cart_array"])?>
并且总项目价格回显会话
<?php echo $_SESSION['smallcart'];?>
如何在不刷新页面的情况下使用PHP或任何其他表单刷新count
和smallcart
会话。
那些在我的pageheader.php
中 我是谁<?php include realpath(dirname(__FILE__)."/../../pageheader.php"); ?>
这是我可以刷新pageheader.php
而不刷新页面body
的方式。
答案 0 :(得分:1)
您可以使用ajax执行此操作,如下例所示。
首先,我们需要一个php文件,它将创建这些会话并与ajax通信。我们调用此文件ajax_cart.php
。可能有以下代码。
$new_cart_item=$_REQUEST['new_cart_item'];
$new_total=$_REQUEST['new_total'];
$cart_array=array();
//for cart arrays
$item_count=0;
if(isset($_SESSION['cart_array'])){
$cart_array=$_SESSION['cart_array'];
$cart_array[]=$_REQUEST['new_cart_item'];
$_SESSION['cart_array']=$cart_array;
$item_count=count($_SESSION["cart_array"]);
else{
$cart_array[]=$_REQUEST['new_cart_item'];
$_SESSION['cart_array']=$cart_array;
$item_count=count($_SESSION["cart_array"]);
}
//for smart cart
$total_price=0;
$_SESSION['smartcart']=$_REQUEST['new_total'];
$total_price=$_SESSION['smartcart'];
$data='{"cartcount":"'.$item_count.'","totalprice":"'.$total_price.'"}';
echo $data;
然后我们可以添加ajax来更新并从该文件中获取结果。来自以下代码。
//ajax side
function my_ajax(url,data,method,datatype){
$.ajax({
type: method,
url: url,
data: data,
dataType: datatype,
success: function(data) {
ajaxResultHandler(data,datatype);
},
error: function(error, status, desc) {
console.log(error);
}
});
}
function ajaxResultHandler(data,datatype){
//here you can put any function to use the given data
var cart_count=data.cartcount;
var total_price=data.totalprice;
$("div.cart_count").html(cart_count); //your element you display item count
$("div.total_price").html(total_price); //your element you display total price.
}
以下是该ajax函数的用法。
$('.add_to_cart').live("click",function(e) {
e.preventDefault();
//get required data from elements or form. perform addation of price.
var total_price=0; //put calculated new total price
var added_item=""; //put the new added item
//call the ajax function
my_ajax("ajax_cart.php",{"new_total":total_price,"new_cart_item":added_item},"post","json");
});
尝试这种方法希望它能解决您的问题。