2016-12-07 3 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

Попробуйте распечатать selectedVal в вашем Javascript перед отправкой запроса или вашего $dsn в ваш PHP. Если он не равен Select Serial Number в Javascript, ваш запрос будет запущен, но он все равно может содержать что-то, что не соответствует вашей базе данных.

Смежные вопросы