Google tablosu güncellemek için JSON ile JavaScript içine PHP dizi geçirmeden

2 Cevap php

Diziler Ayrıca, google grafik diyoruz HTML etiketleri kısalık uğruna ihmal edilmiştir .... düzgün çalışmıyor çünkü ben json ile kodlanmış ettik üç PHP diziler ... ekstra PHP kodu ihmal edilmiştir var ...

<?php
$encoded_line_volume = json_encode($LineVol) . "\n";
$encoded_loan_volume = json_encode($LoanVol) . "\n";
$encoded_cluster_name = json_encode($ClusterLine) . "\n";
?>

Ben dinamik Google tablosu güncellemek için Javascript bu üç diziler erişmek istiyorum.

<script type="text/javascript">

google.load("visualization", "1", {packages:["columnchart"]});
google.setOnLoadCallback(drawChart);

var linevol = new Array;  // This would be the first array passed from PHP
var loanvol = new Array;  // This would be the second array passed from PHP
var clusters = new Array; // This would be the third array passed from PHP

function drawChart() {
    var data = new google.visualization.DataTable();

    data.addColumn('string', 'Cluster');
    data.addColumn('number', 'Loans');
    data.addColumn('number', 'Lines');

/* create for loops to add as many columns as necessary */

var len = jsonarray.length;

    data.addRows(len);

for(i=0; i<len; i++) {

data.setValue(i, 0, ' '+clusters[i]+'');     /* x-axis */
data.setValue(i, 1, linevol[i]);   /* Y-axis category #1*/
data.setValue(i, 2, loanvol[i]);   /* Y-axis category #2*/
}
/*********************************end of loops***************************************/
  var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true, title: 'Prospect Population', legend: 'right'});
}
</script>

2 Cevap

Muhtemelen onları JavaScript değişkenleri olmak istiyorum. Php yürütüldüğünde, web tarayıcısı sonra yorumluyor kodu oluşturur. Yani php kullanarak javascript dizeleri tanımlamak istiyorum. Örneğin:

<script type="text/javascript">
    var encoded_line_volume = <?php echo json_encode($LineVol) ?>;
    var encoded_loan_volume = <?php echo json_encode($LoanVol) ?>;
    var encoded_cluster_name = <?php echo json_encode($ClusterLine) ?>;
</script>

Daha sonra bu değişkenler sonraki javascript erişilebilir.

Bu nasıl, PHP dinamik veri oluşturabilir düzgün bir json biçimlendirilmiş bir çıktı oluşturmak ve JavaScript (JQuery gerekli) onu okumak ve Google Visulization (Grafikler) API için yük olduğunu.

PHP (Server) Yan:

function returnData() {
    $data = Array ();
    $data [] = Array ("Name", "Value");
    $data [] = Array ("Apple", 5);
    $data [] = Array ("Banana", 3);

    header('content-type: application/json');
    echo json_encode($data);
 }

JavaScript (Client) Side:

var jsonData = null;

var jsonDataResult = $.ajax({
    url: dataURL,
    dataType: "json",
    async: false,
    success: (
        function(data) {
            jsonData = data;
        })
});

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