![](/img/trans.png)
[英]how to get a data from a DB using MYSQL and store it in javascript Array
[英]Get MySql data and store it into Javascript array
要从Mysql检索记录数据并将其存储到以下格式的heatmap.js地图数据的Javascript数组中:
var testData = {max: 46, data: [{lat: 33.5363, lon:-117.044, value: 1},{lat: 33.5608, lon:-117.24, value: 1},..]};
现在我被困在这里,而且我不知道如何从Jquery连接到我的var testData = new Array();
,我该如何解决?
(更新的正确代码)
get_query.php
<?php
require_once('./db_con.php');
$dbcon=new db;
$query="SELECT (SELECT geo_lat FROM fun WHERE created_at <= DATE_SUB(NOW(), interval 1 minute) AS geo_lat," .
"(SELECT geo_long FROM fun WHERE created_at <= DATE_SUB(NOW(), interval 1 minute) AS geo_long";
$result = mysqli_query($dbcon,$query);
$data = array();
while($row= mysqli_fetch_assoc($result)){
$data[] = array("lat"=>$row["geo_lat"], "lon"=>$row["geo_long"], "value"=>1);
$post_data = json_encode(array('max' => 46, 'data' => $data));
}
echo $post_data;
?>
来自此处的 my_data.js:
jQuery.extend({
getValues: function(url) {
var result = null;
$.ajax({
url: url,
type: 'get',
dataType: 'json',
async: false,
success: function(data) {
result = JSON.stringify(data);
}
});
return result;
}
});
var testData = $.getValues("get_query.php");
感谢Orangepill和Chrislondon。
while($row= mysqli_fetch_assoc($dbcon,$result)){
$data[] = array("lat"=>$row["geo_lat"], "lon"=>$row["geo_long"], "value"=>1);
}
echo json_encode($data);
应该可以为您提供所需的东西。 当为json_encode构建数据时,仅使用本机php类型而不是json,让json_encode处理
因此,您的问题是如何将jQuery连接到var data
这样我就不会陷入PHP代码中的众多问题。 在成功函数中,您可以像下面这样设置var data
:
var data = new Array();
$(function() {
$.ajax({
type: "post",
url: "get_query.php",
data: $(this).serialize(),
dataType: "json"
}).done(function(response) {
data = response;
});
您的json似乎不正确:
var testData = {max: 46, data: [{lat: 33.5363, lon:-117.044, value: 1},{lat: 33.5608, lon:-117.24, value: 1},..]};
应该在键周围加上引号
var testData = {"max": 46, "data": [{"lat": 33.5363, "lon":-117.044, "value": 1},{"lat": 33.5608, "lon":-117.24, "value": 1},..]};
由于您在php中使用json_encode()
,因此我假设PHP可以正确输出。 但是也许您现在仅使用固定的(错误的)字符串进行测试?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.