使用ajax将php数组传递给Javascript

Passing php Arrays to Javascript with ajax

本文关键字:Javascript 数组 ajax php 使用      更新时间:2023-09-26

它将我的数组显示为列表而不是javascript数组,我如何解决这个问题?控制台日志显示u27509、u55555和JSON。解析另一个答案不工作。

javascript

var data = {
            "action": "test"
        };
        data = $.param(data);
    $.ajax({
            type: "POST",
            dataType: "json",
            url: "../core/GetInfo.php", 
        data: data,
        success: function(data) {
        var y = JSON.parse(data);
        console.log(y[0]);
        console.log(data["Name"]);
    }
        });

PHP

<?php
$action = $_POST["action"];
$return = $_POST;
$EID = array(
    "u27509",
    "u55555"
);
$data = "test";
$return["EID"] = $EID;
$return["Name"] = $data;
$return["Emergency_Phone"] = $data;
$return["Cell_Phone"] = $data;
$return["Emergency_Phone2"] = $data;
$return["Email"] = $data;
$return["Hire_Date"] = $data;
$return["Grad_Date"] = $data;
$return["Major_1"] = $data;
$return["Major_2"] = $data;
$return["School"] = $data;
$return["Active"] = $data;
$return["Admin_Status"] = $data;
$return["json"] = json_encode($return);
echo json_encode($return);

?>

如果你想返回一个PHP数组在JavaScript中作为JSON对象使用,使用return .

<?php
$action = $_POST["action"];
$return = $_POST;
$EID = array(
    "u27509",
    "u55555"
);
$data = "test";
$return["EID"] = $EID;
$return["Name"] = $data;
$return["Emergency_Phone"] = $data;
$return["Cell_Phone"] = $data;
$return["Emergency_Phone2"] = $data;
$return["Email"] = $data;
$return["Hire_Date"] = $data;
$return["Grad_Date"] = $data;
$return["Major_1"] = $data;
$return["Major_2"] = $data;
$return["School"] = $data;
$return["Active"] = $data;
$return["Admin_Status"] = $data;
$return["json"] = json_encode($return);
return json_encode($return); // use return
?>

然后在JavaScript中:

var data = { "action": "test" };
data = $.param(data);
$.ajax({
  type: "POST",
  dataType: "json",
  url: "../core/GetInfo.php", 
  data: data,
  success: function(data) {
    console.log(data); // data will be a JSON object
    console.log(data.EID);
    console.log(data.Email);
    // etc
  }
});

更新:echo也可以工作。