如果我只想console.log一个1(ANY)javaScript对象,该怎么办。当前显示的全部为1000。请查看Php和JS文件:
Server.php
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$data = 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()) {
$data["coordinates"][] = $row;
}
}
echo json_encode($data);
Index.js
{
$.ajax({
dataType: "json",
url: 'server.php',
//data: [],
data: {param: ""},
success: function(data)
{
//JSON.parse(data);
console.log(data);
addMarkers(data,map);
}
});
}
答案 0 :(得分:0)
它显示全部,因为您正在全部记录。您正在从数据库调用中返回1000
个对象,这就是它记录所有内容的原因。
您可以使用类似这样的键通过键找到单个对象:
data.filter(x => x.myPropValue == "myString");
并记录下来。
答案 1 :(得分:0)
如果您希望JavaScript AJAX调用不记录所有1000个项目,则可能需要更改php代码($sql = "SELECT Lng, Lat, URL FROM results LIMIT 1000";
)以使每个调用仅发送一个项目(例如,将1000替换为1),然后进行调整服务器逻辑,以在下一个AJAX调用中获得相应的下一项。
这也会使您的服务器和客户端更快,因为它减少了总数据量,但仍允许1000个或更多的项目。
您还可以尝试添加参数,以便可以告诉php代码JS代码需要获得多少项。
答案 2 :(得分:0)
它有助于了解您正在输出的json数据结构,以及如何访问由该json生成的对象中的某些元素。在您的情况下,最后得到一个名为data
的对象(由.ajax成功回调定义)。然后,该对象仅包含一个带有对象数组的键名。关键名是coordinates
。在每个数组值内,是数据库行返回中的一个对象。
如果您只想显示对象数组中的一个对象,这就是您所需要的:
console.log( data.coordinates[0] );
这将显示数组中的第一个对象(数组以[0]开头)。
console.log( data.coordinates[999] );
这将显示数组1000中的最后一个对象。
console.log( data.coordinates[ data.coordinates.length-1 ] );
使用自身作为确定器,它将显示可变大小数组中的最后一个对象。