2015-09-28 79 views
2

我想從php進程返回多個值。從jquery ajax調用多個值返回php

這裏是jQuery函數以上

$.ajax({ 
    url: 'shopping_cart_add.php', 
    data: 'item_id='+subscription_id+'&item_name='+subscription_name+'&item_price='+subscription_price, 
    type: 'POST', 
    dataType: 'json', 
    success: function(response, statusText) { 
       var qty = response.item_quantity; 
       $("#shopping-cart-quantity").html(qty); 
    } 
}); 

似乎除了工作,我不能檢索返回的JSON的特定字段值。

當我嘗試這個...

var qty = response.item_quantity; 
$("#shopping-cart-quantity").html(qty); 

什麼也沒有發生。

如果我改變...

$("#shopping-cart-quantity").html(qty); 

$("#shopping-cart-quantity").html(response); 

我得到以下...

{ 'account_id': '1', 'item_id' : 'cce3d2a017f6f1870ce8480a32506bed', 'item_name' : 'CE', 'item_quantity' : '1', 'item_price' : '1' } 
+0

請問'response'是否有一個'responseJSON'屬性有你要找的對象? – Scott

+0

@ScottKaye由於他使用'dataType:'json'',所以'response'已經被解析,它不是XHR。 – Barmar

+3

您的JSON不正確。字符串**必須包含在雙引號中,而不是單引號。您的PHP腳本中存在一個錯誤,它不會調用'json_encode()'來編碼響應。 – Barmar

回答

1

請確保您使用json_encode()爲返回結果數組

/*** PHP ***/ 
echo json_encode($resultArr); exit ; 

然後在AJAX中用eval()嘗試訪問響應文本值。

/*** AJAX ***/ 
var qty = eval(response.item_quantity);