繁体   English   中英

未定义-使用jQuery AJAX从PHP返回多个值

[英]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));

图片

为什么您认为$.ajaxdatos理解为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM