我有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);
}
});
答案 0 :(得分:2)
只需将dataType: 'html'
更改为dataType: 'json'
:)
答案 1 :(得分:0)
确保$query
为真。我也会做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);
}
答案 2 :(得分:0)
FYI。 我在使用WordPress(4.3.1)并尝试将json数据加载到WordPress内的D3.json函数时发现了这个问题。 json_encode(some_array)不起作用但返回undefined。它返回一个整数值,但不返回任何数组。 UTF-8检查或其他任何内容都无济于事。
然后我不自觉地用wp_die()命令关闭了php ajax函数,它在那里丢失了。瞧!,这突然起作用,json_encode返回数组。
希望这有助于某人。