值不是通过ajax将会话数组更改为json数组

时间:2013-03-10 06:22:12

标签: php json session

我有一个会话数组 $ _ 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更新此值,然后去查看数量,它正在改变。为什么会这样?

请帮助!!!

2 个答案:

答案 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;
    }
});