【发布时间】:2019-02-11 07:07:15
【问题描述】:
我想使用 AJAX 从数据库中检索(连续)数据并将其传递给 JavaScript 中的变量。但是,我不能将它们存储在数组中。数组中的值始终未定义。以下是代码:
我的 JavaScript 文件:
var counter = 0;
$(document).ready(function(){
var pressure = [];
var waterflow = [];
var xhr;
function execAjax(){
if(xhr && xhr.readyState != 4){
xhr.abort();
}
xhr = $.ajax({
url: "controller/getrate.php",
type: "GET",
data: {current_location},
success: (response) => {
var data = JSON.parse(response);
pressure[counter] = data.pressure[counter];
waterflow[counter] = data.waterflow[counter];
counter++;
}
});
}
setInterval(function(){
execAjax();
}, 5000);
var data = {
datasets:[{
data: [pressure[0],pressure[1]]
},
data: [waterflow[0], waterflow[1]]
]
}
var dataSetA = oldData["datasets"][0]["data"];
var dataSetB = oldData["datasets"][1]["data"];
console.log(dataSetA);
console.log(dataSetB);
});
我的 PHP 文件 (getrate.php):
<?php
include 'db.php';
$data = array(
"loc_id" => array(),
"pressure" => array(),
"waterflow" => array(),
);
$getData = "SELECT * FROM tbl_rates LIMIT 10";
$execGetData = mysqli_query($db, $getData);
while($row = mysqli_fetch_array($execGetData)){
array_push($data['loc_id'], $row['locationID']);
array_push($data['pressure'], $row['pressure']);
array_push($data['waterflow'], $row['waterflow']);
}
echo json_encode($data, JSON_PRETTY_PRINT);
?>
输出:
[undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined]
【问题讨论】:
-
访问如 pressure.counter = data.pressure.counter;
-
您会在这里找到答案:stackoverflow.com/questions/33285868/…,如果这不起作用,您还可以对子数组进行 json_encode:$data['loc_id'] = json_encode($data['loc_id'] ); $data['pressure'] = json_encode($data['pressure']); $data['waterflow'] = json_encode($data['waterflow']);
标签: javascript php jquery arrays ajax