提问者:小点点

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


因为我没有定义。我失败的地方?

代码:


    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);
                    }
            });
    }

存档.php php:


    $cost=$_POST['id']*$_POST['cost'] + 137;
    echo json_encode(array("r1" =>$_POST['id'], "r2" => $cost));


共2个答案

匿名用户

为什么您认为$.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中设置头(对

header('Content-Type: application/json');

我建议你用第一个和第三个的组合。不要留下任何一块石头。

匿名用户

Datos可能是一个字符串

您可以执行以下操作:

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);
    }
});