2016-12-07 10 views
2

私は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); 

の下を参照してくださいすべてのヘルプは非常になります高く評価されました

答えて

0

リクエストを送信する前にJavascriptで、またはPHPに$dsnを入力してください。 JavascriptでSelect Serial Numberと等しくない場合、要求は実行されますが、依然としてデータベース内で一致しないものが含まれている可能性があります。

関連する問題