我有一个会话数组 $ _ SESSION ['Cartquantity'] 。在 php 文件中没有 200 我将此数组存储在变量 $ QtyArray
中$QtyArray = $_SESSION['Cartquantity'] ;
然后我在 json 中对数组进行编码,以便在 js 文件中使用
echo "var cartQty = " . json_encode($QtyArray) . ";" ; (on line 201)
现在通过 AJAX 我将以相同的方式在 120 行更新会话数组
$QtyArray = $_SESSION['Cartquantity'] ; (on line 120)
echo "var cartQty = " . json_encode($QtyArray) . ";" ; (on line 121)
数组显然正在更新,因为我可以在firebug的控制台上看到这个。但是当我在js上获得这个值时,文件值不会改变。如果我重新加载页面,我通过ajax更新此值,然后去查看数量,它正在改变。为什么会这样?
请帮助!!!
答案 0 :(得分:0)
确保在ajax调用中禁用缓存,如下所示:
$.ajax({
url: "test.html",
cache: false //DISABLE CACHING
}).done(function( html ) {
$("#results").append(html);
});
<强>更新强>
您的.get()
调用适用于.ajax()
并具有缓存选项:
$.ajax({
url: "index.php",
data: { q: "add_card", item_id: id, item_qty: qty, topping_extra_v: topping_extra_val,item_syskey:syskey },
cache: false //DISABLE CACHING
}).done(function( data ) {
alert(data);
});
答案 1 :(得分:0)
更改
echo "var cartQty = " . json_encode($QtyArray) . ";" ;// (on line 121)
到
echo json_encode($QtyArray);
然后像这样进行你的ajax调用
$.ajax({
url:"index.php",
cache:false,
dataType:'json',
data:{ q: "add_card", item_id: id, item_qty: qty, topping_extra_v: topping_extra_val,item_syskey:syskey },
function(data){
cartQty = data;
}
});