[英]UNDEFINED - multiple return values from PHP with jQuery AJAX
因为我不确定。 我在哪里失败?
码:
function add(id,cost){ var info = { "id" : id, "cost": cost, }; $.ajax({ data: info, url: 'a.php', type: 'post', success: function (datos) { alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2); } }); }
存档a.php PHP:
$cost=$_POST['id']*$_POST['cost'] + 137; echo json_encode(array("r1" =>$_POST['id'], "r2" => $cost));
为什么您认为$.ajax
将datos
理解为JSON? 您需要指定它,可以使用多种方法来进行指定。
解析它
success: function (datos) {
datos = JSON.parse(datos);
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
在$.ajax
本身中指定
$.ajax({
data: info,
url: 'a.php',
type: 'post',
dataType:"json",
....
在PHP中设置标头(不适用于<IE8)
header('Content-Type: application/json');
我建议您使用第一个和第三个的组合。 让我们不遗余力。
拿督斯可能是一个字符串
你可以做:
datos = JSON.parse( datos );
或者,您可以将返回类型设置为JSON:
$.ajax({
data: info,
dataType: 'json',
url: 'a.php',
type: 'post',
success: function (datos) {
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.