繁体   English   中英

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

[英]Pass associative array to Javascript using 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");
    }
}); 

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

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

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

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

在您的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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM