2016-12-07 5 views
2

Ich arbeite an CanvasJs, um Daten in meinem Diagramm anzuzeigen. Ich habe eine dropdown platziert und darin habe ich statische serial numbers platziert. Das Szenario ist, wenn ich eine Seriennummer wähle, werden die Daten auf dem Diagramm angezeigt. Dazu habe ich eine lokale php Datei erstellt und in meine lokale server eingegeben, eine ajax Anfrage gemacht und Daten auf dem Diagramm angezeigt.CanvasJs-Daten werden nicht im Diagramm angezeigt

Aber das Problem, mit dem ich konfrontiert bin, ist auf den ersten Lauf, wenn ich irgendeine Seriennummer wählen, zeigt es mir keine Sache auf Diagramm, aber wenn ich irgendeine andere Seriennummer wählen, werden die Daten angezeigt und dann auf eine andere Seriennummer auswählen (auch die Seriennummer die ich beim ersten Lauf auswähle) Die Daten werden perfekt geladen und mein Programm läuft einwandfrei.

Zum besseren Verständnis finden würden Sie den Code unten

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 

} 

Siehe unten mein php Code

$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); 

Ich weiß nicht, was ist das eigentliche Problem

Jede Hilfe hoch sein geschätzt

Antwort

0

Versuchen Sie, Ihrezu druckenin Ihrem Javascript vor dem Senden der Anfrage oder Ihre $dsn in Ihrem PHP. Wenn es nicht gleich Select Serial Number im Javascript ist, wird Ihre Anfrage ausgeführt, aber es kann immer noch etwas enthalten, das nicht in Ihrer Datenbank übereinstimmt.

Verwandte Themen