使用Ajax将关联数组传递给Javascript

时间:2018-07-24 10:35:04

标签: javascript php ajax

我正在学习编程。谁能帮助我使用AJAX将此关联数组传递给JavaScript?

server.php

$sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";

$result = $conn->query($sql);

if ($result->num_rows > 0) 
{
     while($row = $result->fetch_assoc()) 
     {
         $data = json_encode($row["Lng"].$row["Lat"]. urlencode($row["URL"])."<br>");
         $param = $_POST['param'];
         $param = json_decode($param);
     }
} else {
     echo "0 results";
}

$conn->close();   

Index.js

$.ajax({
    url: 'server.php',
    data: {param: ""},
   success: function() 
    {
        console.log("Testing");
    }
}); 

2 个答案:

答案 0 :(得分:0)

您应该从服务器端获取数据作为成功回调的参数:

$.ajax({
    url: 'server.php',
    data: {param: ""},
    success: function(response) 
    {
        console.log( JSON.parse( response ) );
    }
});

注意1:您应该将代码真正安排在服务器端。

注意2::如果您在服务器端脚本中使用json_encode()发送JSON格式作为响应,则需要在客户端中使用JSON.parse()解码JSON。

答案 1 :(得分:0)

在您的 server.php 中,您需要json_encode而不是解码:

$response = array("coordinates" => array());
$sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
$result = $conn->query($sql);
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            $response["coordinates"][] = $row;
        }
    }

echo json_encode($response);
$conn->close();

和请求(index.js)类似:

   $.ajax({
      dataType: "json",
      url: 'server.php',
      data: [],
      success: function(response){console.log(response);}
    });

您必须响应JSON,否则它将不起作用。它应该很简单:

echo json_encode($array)