[英]AJAX value from PHP returned as undefined with JSON
我有一個AJAX
腳本通過PHP
更新數據庫。
然后,我試圖將兩個變量返回給AJAX
成功函數。
當前,當警告返回的數據時,它們顯示UNDEFINED
。
當我返回JSON
但未說明所需的數組部分時,該數組將完整顯示。 但是,只有當我明確聲明要使用數組中的哪個值時,兩個值似乎才變得不確定。
How should I manage these values returned from the PHP?
AJAX
success: function(data) {
$('#'+data.toUpdate).html(data.quant);
$('#'+data.toUpdate).addClass('updated_grn');
alert('quant:' + data.quant + '\nid:' + data.toUpdate);
}
的PHP
if ($query) {
echo json_encode(array("toUpdate" => $toUpdate, "quant" => $quant));
}
結果
當我alert(data)
這返回:
完整的PHP
$itemid = ($_POST['itemid']);
$quant = ($_POST['quant']);
$toUpdate = ($_POST['toUpdate']);
$sql = "UPDATE items_list
SET `stock_level` = '$quant'
WHERE item_id = '$itemid'";
$query = mysql_query($sql);
if ($query) {
echo json_encode(array("toUpdate" => $toUpdate, "quant" => $quant));
}
完整的AJAX
$.ajax({
type: 'POST',
url: url,
dataType: 'html',
data: {
itemid: itemid,
quant: quant,
toUpdate: toUpdate
},
beforeSend: function() {
$('#'+id+'_num')
.html("<img src='xxxxxxx.com/home/secure/images/gif/ajax-loader.gif'></img>");
},
success: function(data) {
alert(data);
// $('#'+data.toUpdate).html(data.quant);
// $('#'+data.toUpdate).addClass('updated_grn');
// alert('quant:' + data.quant + '\nid:' + data.toUpdate);
}
});
只需將dataType: 'html'
更改為dataType: 'json'
:)
確保$query
為true。 我也會做die()
所以輸出中沒有其他內容:
if ($query) {
die(json_encode(array("toUpdate" => $toUpdate, "quant" => $quant)));
}
您始終可以檢查從PHP獲得的內容:
success: function(data) {
alert(data);
$('#'+data.toUpdate).html(data.quant);
$('#'+data.toUpdate).addClass('updated_grn');
alert('quant:'+data.quant+'\nid:'+data.toUpdate);
}
僅供參考。 我在使用WordPress(4.3.1)時發現了此問題,並嘗試將JSON數據加載到WordPress內部的D3.json函數中。 json_encode(some_array)不起作用,但返回未定義。 它返回單個整數值,但不返回任何數組。 UTF-8檢查還是沒有其他幫助。
然后我偶然通過wp_die()命令關閉了php ajax函數,它在那里丟失了。 瞧,這突然起作用了,json_encode返回數組值。
希望這對某人有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.