私は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);
の下を参照してくださいすべてのヘルプは非常になります高く評価されました