0

我有一个会话数组$_SESSION['Cartquantity']。在第200行的php文件中,我将此数组存储在变量 $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)

数组显然正在更新,因为我可以在萤火虫的控制台上看到它。但是当我在 js 文件中获取这个值时,值并没有改变。如果我重新加载通过 ajax 更新此值的页面,然后查看数量,它正在发生变化。为什么会这样?

请帮忙!!!

4

2 回答 2

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;
    }
});
于 2013-03-10T06:55:35.577 回答
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);
});
于 2013-03-10T06:31:44.040 回答