0

It displays my array as a list not as a javascript array, how do i fix this? The console log shows u27509, u55555 and the JSON.parse that another answer had does not work.

Here is the 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"]);
    }
        });

Here is the 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);

?>

CHouse95
  • 111
  • 8

1 Answers1

0

If you want to return a PHP array to be used as a JSON object in JavaScript, use 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
?>

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

Update: echo also works.

Raphael Rafatpanah
  • 19,082
  • 25
  • 92
  • 158