用ajax调用php并返回多个变量?

时间:2014-04-02 19:26:36

标签: javascript php jquery ajax variables

我正在尝试使用javascript调用php脚本,然后将多个变量返回给我的javascript,以便我可以操作它们。

这是我的JS。

                $.ajax({ 
                    url: 'test.php',
                    data: { id : lastFileId },
                    success: function(output) {
                        alert(output);
                    }
                });

我的PHP

<?php
    $fileId = ($_GET['id']);
    $num1 = 1;
    $num2 = 2;

?>

从这里,如何返回变量$ num1和$ num2,以便我可以在我的javascript中使用它们。有可能吗?

如果我能做到这一点,这也是我计划要做的一个非常基本的想法。

5 个答案:

答案 0 :(得分:16)

您可以使用json_encode()返回任意数量的变量。

试试你的PHP:

<?php
echo json_encode(array($num1, $num2));
?>

您可以添加到该数组, $num3, $num4, ...,依此类推。

在您的JS中,您可以按如下方式访问每个号码。

首先,您需要这行代码来解析成功函数中的编码JSON字符串。

var result = $.parseJSON(output);

result设置为JSON对象。现在,您可以访问result中的所有字段:

  • result[0] - PHP中的$num1
  • result[1] - PHP中的$num2

答案 1 :(得分:4)

你可以在PHP和javascript中使用Json,如果你想要一个响应ajax请求的数组

PHP代码

<?php
    $fileId = isset($_GET['id'])?$_GET['id']:0;
    echo json_encode(array("field"=>$fileId,"num1"=>1,"num2"=>2));
?>

Js Code

jQuery.ajax({
    type: "GET",
    url: 'test.php',
    dataType: "json",
    success: function(response) {
        console.log(response);
        alert(response.num1);
    }
});

答案 2 :(得分:0)

将json转换为对象

jQuery.ajax({
    type: "GET",
    url: 'test.php',
    dataType: "json",
    success: function(response) {
       item=JSON.parse(response);
        console.log(item);
        alert(item.num1);
    }
});

答案 3 :(得分:0)

使用一个简单的字符串,并在ajax响应中进一步爆炸(拆分)它。这是PHP代码

<?php
   $fileId = ($_GET['id']);
   echo $num1."|".$num2;
?>

现在使用JavaScript拆分(分解)响应

$.ajax({ 
        url: 'test.php',
        data: { id : lastFileId },
        success: function(output) {
             var my_arr = output.split("|");
             console.log(my_arr[0] + "" + my_arr[1]);
        }
});

答案 4 :(得分:0)

您可以简单地将其返回 return ['num1'=>$num1,'num2' => $num2];

,此外,您可以按以下方式访问它, respone.num1