2017-01-17 8 views
1

Ich denke, ich habe die richtigen Schritte gemacht, um ein Highchart mit Daten in der HTML-Tabelle definiert zu erstellen. aber wenn ich es ausführen werde, nur die Tabelle gezeigt, kann das Diagramm nicht angezeigt werden. Meine Tabellendaten werden von der Datenbank geladen. es könnte sein, dass Teile ich vermisse das mein Code:Wie kann ich Highchart-Grafiken mit Daten anzeigen, die in der HTML-Tabelle definiert sind?

var chart1; // globally available 
 
$(document).ready(function() { 
 
    chart1 = new Highcharts.Chart({ 
 
     chart: { 
 
      renderTo: 'grafik', 
 
      type: 'column' 
 
     }, 
 
     data: { 
 
      table: document.getElementById('aruskas') 
 
     }, 
 
     title: { 
 
      text: 'Data extracted from a HTML table in the page' 
 
     }, 
 
     yAxis: { 
 
      allowDecimals: false, 
 
      title: { 
 
       text: 'Units' 
 
      } 
 
     }, 
 
     tooltip: { 
 
      formatter: function() { 
 
       return '<b>' + this.series.name + '</b><br/>' + 
 
        this.point.y + ' ' + this.point.name.toLowerCase(); 
 
      } 
 
     } 
 
    }); 
 
});
<table id="aruskas" class="table table-condensed" style="margin-left: 10px;"> 
 

 
    <thead> 
 
    <tr> 
 
     <th width="100px"></th> 
 
     <th width="100px">Pemasukan</th> 
 
     <th width="100px">Pengeluaran</th> 
 
    </thead> 
 

 
    <?php 
 
    include '../koneksi.php'; 
 

 
    $sql = "SELECT DATE_FORMAT(tgl, '%m') as tanggal FROM penjualan WHERE year(tgl)='2016' UNION (SELECT DATE_FORMAT(tanggal, '%m') as tanggal FROM pembelian WHERE year(tanggal)='2016') ORDER BY tanggal ASC"; 
 
     $query = mysqli_query($koneksi,$sql) or die(mysqli_error()); 
 
     while($ret = mysqli_fetch_array($query)){ 
 
     $tgl=$ret['tanggal']; 
 

 
     /*menghitung pemasukan*/ 
 
     $sql_jumlah = "SELECT sum(total_harga) FROM penjualan where year(tgl)='2016' AND month(tgl)='$tgl' ";   
 
     $query_jumlah = mysqli_query($koneksi,$sql_jumlah) or die(mysqli_error()); 
 
     while($data = mysqli_fetch_array($query_jumlah)){ 
 
     $jumlah = $data['sum(total_harga)'];     
 
    } 
 
    $sql_jumlah1 = "SELECT sum(total) FROM aruskas where year(tgl)='2016' AND month(tgl)='$tgl' and noref like '%CI%' ";   
 
    $query_jumlah1 = mysqli_query($koneksi,$sql_jumlah1) or die(mysqli_error()); 
 
    while($data1 = mysqli_fetch_array($query_jumlah1)){ 
 
     $jumlah1 = $data1['sum(total)'];     
 
    } 
 
    $pemasukan = $jumlah+$jumlah1; 
 

 
    /*menghitung pengeluaran*/ 
 
    $sql_jumlah = "SELECT sum(total_harga) FROM pembelian where year(tanggal)='2016' AND month(tanggal)='$tgl' ";   
 
    $query_jumlah = mysqli_query($koneksi,$sql_jumlah) or die(mysqli_error()); 
 
    while($data = mysqli_fetch_array($query_jumlah)){ 
 
     $jumlah = $data['sum(total_harga)'];     
 
    } 
 
    $sql_jumlah1 = "SELECT sum(total) FROM aruskas where year(tgl)='2016' AND month(tgl)='$tgl' and noref like '%CT%' ";   
 
    $query_jumlah1 = mysqli_query($koneksi,$sql_jumlah1) or die(mysqli_error()); 
 
    while($data1 = mysqli_fetch_array($query_jumlah1)){ 
 
     $jumlah1 = $data1['sum(total)'];     
 
    } 
 
    $pengeluaran = $jumlah+$jumlah1; 
 
    
 
    ?> 
 

 
    <tbody> 
 
     <tr> 
 
     <th> 
 
      <?php if ($tgl==01) { 
 
     echo "Januari"; 
 
     }elseif ($tgl==02) { 
 
     echo "Februari"; 
 
     }elseif ($tgl==03) { 
 
     echo "Maret"; 
 
     }elseif ($tgl==04) { 
 
     echo "April"; 
 
     }elseif ($tgl==05) { 
 
     echo "Mei"; 
 
     }elseif ($tgl==06) { 
 
     echo "Juni"; 
 
     }elseif ($tgl==07) { 
 
     echo "Juli"; 
 
     }elseif ($tgl==8) { 
 
     echo "Agustus"; 
 
     }elseif ($tgl==9) { 
 
     echo "September"; 
 
     }elseif ($tgl==10) { 
 
     echo "Oktober"; 
 
     }elseif ($tgl==11) { 
 
     echo "November"; 
 
     }elseif ($tgl==12) { 
 
     echo "Desember"; 
 
     }else{ 
 

 
     } ?> 
 
     </th> 
 
     <td><?php echo $pemasukan; ?></td> 
 
     <td><?php echo $pengeluaran; ?></td> 
 
     </tr> 
 
    <?php } ?> 
 
    </tbody> 
 

 

 
    </table> 
 

 
    <div id="grafik"></div> 
 

 
    <script src="../js/jquery.js"></script> 
 
    <script src="../js/jquery-ui-1.10.4.min.js"></script> 
 
    <script src="../js/jquery-1.8.3.min.js"></script> 
 
    <script type="text/javascript" src="../js/jquery-ui-1.9.2.custom.min.js"></script> 
 
<script src="../js/highcharts.js"></script>

jede Hilfe sehr geschätzt wird.

+0

Wo fügen Sie den JS-Code in Ihre PHP-Datei ein? Bitte fügen Sie diesen Teil in Ihr Beispiel ein –

+0

Ich habe nicht mit Highcharts gearbeitet, aber mit anderen JS-Klassen müssen Sie auch eine Methode aufrufen, um das Diagramm zu zeichnen. etwas wie chart1.plot(). –

+0

Ich habe JS-Code unterhalb des Tabellencodes platziert. Ich denke, mit ID, um die Grafik anzuzeigen, kann es getan werden. Ich habe vorher plot() nicht benutzt, wie benutzt man plot() in JS? @ErikKalkoken –

Antwort

0

OK, ich denke, ich habe es herausgefunden: Der Hauptgrund, warum das Diagramm nicht angezeigt wird, ist, dass Sie die Daten JS-Datei nicht enthalten.

Fügen Sie diese Zeile in Ihre PHP-Datei unter dem anderen JS umfasst:

<script src="https://code.highcharts.com/modules/data.js"></script> 

Sie auch eine Schließung </tr> im Tabellenkopf fehlen.

Hier ist eine funktionierende Lösung in einem JS fiddle. (Ohne den PHP-Code)

Erlauben Sie mir einen Vorschlag machen, wie die Struktur des Codes zu verbessern und macht es leichter zu lesen und zu debuggen:

Ich würde zunächst alle Daten aus der Datenbank sammeln und speichern sie in eine Anordnung. Erstellen Sie dann (in einer separaten Schleife) die Tabelle, indem Sie die Daten aus diesem Array verwenden.

+0

Ich habe es versucht, aber immer noch nicht angezeigt :( –

+0

Ich habe eine neue Lösung hinzugefügt, bitte überprüfen Sie es –

Verwandte Themen