我想从数据库中获取数据并将其保存在数组中。像这个
var locations = [ ['Current', 18.53515053, 73.87944794, 2],
['VimanNagar', 18.5670762, 73.9084194, 1]
];
首先,我创建了一个php页面
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "citytrans";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM driver_location";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo json_encode($row);
}
} else {
echo "0 results";
}
$conn->close();
?>
这给了我低于的结果
{"driver_id":"1","driver_lat":"18.53515053","driver_lng":"73.87944794","driver_code":"122"}{"driver_id":"2","driver_lat":"18.53640175","driver_lng":"73.88206482","driver_code":"133"}
现在我想使用Jquery将其转换为一个数组(我想对其进行解码),我只想从上面显示的数据库中获取jSON数据中的drivers_lat
和drivers_lng
值。
我使用下面的代码来解析json 的数据
jQuery.ajax({
url: baseurl + "getdriverlocation.php",
type: "JSON",
async: false,
success: function(data){
var myArray = JSON.parse(data);
console.log(myArray.driver_lat)
}
});
但它给了我错误(如下所示)
SyntaxError:JSON.parse:后面出现意外的非空白字符JSON数据第1行第92列的JSON数据
我只想要json数据中的两个值,并将其保存在数组变量中
请帮助
使用这个。。
jQuery.ajax({
url: baseurl + "getdriverlocation.php",
type: "JSON",
async: false,
success: function(data){
var myArray = jQuery.parseJSON(data);// instead of JSON.parse(data)
jQuery(myArray).each(function( index, element ) {
console.log(element.driver_lat)
});
}
});
在php中,您应该执行以下操作:
if ($result->num_rows > 0) {
// output data of each row <- no, build your data, then make only 1 output
$output = array();
while($row = $result->fetch_assoc()) {
$output[] = $row;
}
echo json_encode($output);
}
然后在jQuery中,解析整个json解码数组。。。
您的json数据无效。必须在两个JSON对象之间加逗号你的回答必须是{"driver_id":"1","driver_lat":"18.553515053","drive _lng":"73.87944794","driver_code":"122"},{"driver_id":"2","driver_lat":"18.53640175","drive _lng":"73.88206482","driver_code":"133"}
当我发现您的响应JSON格式无效时,响应JSON格式应该是这样的,以便通过JSON.parse()解析为JSON
[{"driver_id":"1","driver_lat":"18.53515053","driver_lng":"73.87944794","driver_code":"122"},
{"driver_id":"2","driver_lat":"18.53640175","driver_lng":"73.88206482","driver_code":"133"}]
试试这个
$arrTmp = array();
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$arrTmp[] = $row;
}
}
echo json_encode($arrTmp);
也许下面的jQuery工具适用于旧浏览器
$.parseJSON(data);