2017-10-05 2 views
0

Fall: Ich erstelle Schaltflächen der SQL-Daten (While-Schleife), für jede Zeile Ergebnis (Maschine_ID, Tag_Name, Real_value), ich eine Schaltfläche erstellen. Diese Schaltfläche verfügt über eine onclick-Methode, die die JavaScript-Methode "drawChart()" aufruft und ein Diagramm mit einer statischen Abfrage öffnet. Ich versuche, diese Abfrage dynamisch mit den Werten der Schaltfläche, auf die geklickt wird, zu erhalten.Pass PHP-Variable (bei Klick) zu einem anderen PHP-Skript

Stück des Codes, der die Schaltflächen erstellt.

while ($row = mysqli_fetch_array($result)) { 
    if ($row["int_value"] == 0 && $row["real_value"] == 0.0 && $row["bool_value"] != "") { 
     $data[] = $row; 
     $output .= ' 
      <tr> 
       <td width="30%"><button name="view" value="view" id="id" class="view_btn_data" onclick="drawChart(\'' . $row["tag_name"] . '\')">' . $row["tag_name"] . '</button></td> 
       <td width="30%">' . $row["bool_value"] . '</td> 
       <td width="40%">' . $row["datetime"] . '</td> 
      </tr> 
      '; 
    } 

Javascript-Code von drawChart():

function drawChart() 
{ 
google.charts.load('current', {'packages': ['corechart']}); 
google.charts.setOnLoadCallback(drawChart); 

function drawChart(tagname) { 

    var jsonData = $.ajax({ 
     url: "testChart.php", 
     dataType: "json", 
     data: {tagname: tagname}, 
     async: false 
    }).responseText; 


    var data = new google.visualization.DataTable(jsonData); 

    var options = { 
     chart: { 
      title: 'Values', 
     }, 
     width: 900, 
     height: 500 
    }; 

    //var chart = new google.charts.Line(document.getElementById('chart_div')); 
    var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
    //chart.draw(data, google.charts.Line.convertOptions(options)); 
    chart.draw(data, options); 

    $('#chartModal').modal("show"); 
} 

}

Tabelle erhält seine Daten von testChart.php, Abfrage unter:

$tagname = $_REQUEST['tagname']; 

$Chart = "SELECT * 
     FROM (
      SELECT *, 
       @rn := if(@tag_name = tag_name, 
        @rn + 1, 
        if(@tag_name := tag_name, 1, 1) 
       ) as tag_count 
      FROM waardes 
      CROSS JOIN (SELECT @rn := 0, @tag_name := '') as vars 
      ORDER BY tag_name 
     ) as T   
     WHERE tag_count < 51 AND machine_id LIKE 3 AND tag_name LIKE '. $tagname .' 
     ORDER BY datetime DESC"; 

Es funktioniert, aber mit ein statisches Diagramm, Punkt ist, wenn die Schaltfläche geklickt wird, möchte ich die Parameter dieser $ -Zeile an die Abfrage "WHERE tag_count < 51 AND machine_id LIKE Variable von $ row ["machine_id"] UND tag_name LIKE Variable von $ row ["tag_name"] ".

* Sorry, wenn es ein bisschen chaotisch ist, nicht wirklich vertraut mit PHP, HTML und Javascript.

+0

Ihre Maschine-ID in URL übergeben "testChart.php? Id =". $ Row [ 'machine_id'] und greifen Sie in Ihrer PHP-Seite $ mit _GET ['machine_id'] – pravindot17

+0

Ich habe den obigen Code bearbeitet. Bitte schauen Sie noch einmal. – Niels

Antwort

0

Die folgenden Änderungen verknüpfen einen Tagnamen in die Funktion drawchart() und senden ihn zusammen mit Ihrer Ajax-Anfrage.

Dann lesen Sie einfach den Tag-Namen in der PHP und bauen Sie es in die MySQL-Abfrage.

PHP

<td width="30%"><button name="view" value="view" id="id" class="view_btn_data" onclick="drawChart(\'' . $row["tag_name"] . '\')">' . $row["tag_name"] . '</button></td> 

JS

function drawChart(tagname) { 

    var jsonData = $.ajax({ 
     url: "testChart.php", 
     dataType: "json", 
     data{tagname:tagname} 
     async: false 
    }).responseText; 
+0

Ich habe 1: 1 Ihren Code in meinen Code kopiert, ich sehe nicht, wie Javascript "Tagname" mit Tag_Name (in PHP-Datei) verbindet. Und wie bekomme ich jetzt die Parameter in der Abfrage in testChart.php? Tut mir leid, ich bin ein Anfänger mit PHP. – Niels

+0

Wenn Sie die Quelle anzeigen, sollten Sie jetzt den Tag-Namen in der onclick = "drawChart() sehen. Dies wird an die JavaScript-Funktion übergeben und über Ajax an den Server gesendet. Tagname wird in der $ _REQUEST ['Tagname'] Variable in PHP –

+0

Wenn ich richtig verstehe: Parameter von createButtons.php -> Javascript erstellen chart.js -> chart.php.Ich habe die Parameter in meinem Javascript jetzt, wie Sie sagen (nicht getestet, weil ich nicht wissen, wie man testet mit netbeans), jetzt brauche ich die Parameter in meiner .php Datei, wo die Abfrage liegt .. Kannst du mir ein Beispiel geben? Entschuldigung 10 Wochen Erfahrung mit php. – Niels

Verwandte Themen