CanvasJs数据未在图表上显示
问题描述:
我正在处理CanvasJs
以在我的图表中显示数据。我已经放置了一个dropdown
并在其中放置了静态的serial numbers
。情景是,每当我选择一个序列号时,图表上的数据都会显示出来。为此,我制作了一个当地的php
文件,并将其放入我的本地server
,发出ajax
请求并在图表上显示数据。CanvasJs数据未在图表上显示
但我面临的问题是第一次运行时,当我选择任何序列号时,它并没有在图表上显示我任何东西,但是当我选择任何其他序列号时,显示数据,然后选择另一个序列号(也是我第一次运行时选择的序列号)数据加载完美,我的程序运行良好。
为了更好地了解请查看下面
var dataPoints = [];
function SrNo() {
var e = document.getElementById("dd");
var selectedVal = e.options[dd.selectedIndex].text;
if (selectedVal == "Select Serial Number")
{
toastr.warning('Please select a serial number', '', { timeOut: 2000 });
}
else {
$.ajax({
method: "GET",
url: "mylocalhost/server/index.php",
dataType: "json",
data: { Device_Serial_Number: selectedVal },
success: function (server_data) {
dataPoints = server_data;
dataPoints.forEach(function (data) {
dataPoints.push({ x: new Date(data.x), y: data.y });
});
},
error: function() {
alert("error");
}
});
//here i have generated my chart and passed dataPoints into it
}
代码见下面我php
代码
$dsn=$_REQUEST['Device_Serial_Number'];
$sql = "SELECT Device_ID, Energy_kwh, Data_Datetime, Device_Serial_Number FROM ads_device_data WHERE Data_Datetime BETWEEN '2016-12-06' and '2016-12-07' and Device_Serial_Number='$dsn'";
$result = mysqli_query($con,$sql);
$data = [];
if($result)
{
while($row = mysqli_fetch_array($result))
{
$serial = $row['Device_Serial_Number'];
$x = $row['Data_Datetime'];
$y = $row['Energy_kwh'];
$data[] = ['x' => $x , 'y' => (float)$y];
}
mysqli_free_result($result);
}
mysqli_close($con);
$json = json_encode($data);
我不知道什么是真正的问题
任何帮助将是非常赞赏
答
试试打印您的在发送请求或在您的PHP中使用您的$dsn
之前,请在您的Javascript中使用。如果它不等于在Javascript中的Select Serial Number
,那么您的请求将会运行,但它可能仍包含与数据库中不匹配的内容。