2012-04-02 10 views
0

Ich habe diesen Code Chart zu generieren:Wie kann ich Google Chart mit jQuery ajax() zeichnen?

<script type="text/javascript"> 

    google.load('visualization', '1.0', {'packages':['corechart']}); 
    $(document).ready(function() { 

    $('.show_chart').click(function(){ 
     var sku = $(this).attr("data-sku"); 
     var vid = $(this).attr("data-vid"); 

     $.ajax({ 
      type: "POST", 
      url:"../ajax/priceChart.php", 
      async: false, 
      dataType:'text',//moment google apito mai ne go zaredi ! 
      data: {'sku':sku,'vid':vid}, 
      success:function(vals){ 
       var vals = vals; 
       $(".dialog").dialog({ 
        modal:true, 
        buttons: { "Cancel": function() { $(this).dialog("close"); } } 
       }); 


drawChart(vals); 
       return false; 



      }, 
       error:function (xhr, ajaxOptions, thrownError){ 
        alert(xhr.status); 
        alert(thrownError); 
       } 
     });  
    }); 



    }) 
function drawChart(vals) { 
     console.log(1); 
     // Create the data table. 
     var data = new google.visualization.DataTable(); 
     data.addColumn('string', 'Date'); 
     data.addColumn('number', 'New'); 
     data.addColumn('number', 'Old'); 
     data.addRows([ 
     // ['2012-03-29 16:36:58', 313.99000, 314.00000], 
     // ['2012-03-29 16:36:58', 313.99000, 314.00000] 
      vals 

     ]); 


     // Set chart options 
     var options = {'title':'PriceChart'}; 

     // Instantiate and draw our chart, passing in some options. 
     var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
     chart.draw(data, options); 
     console.log(4); 
     } 

</script> 

Das zurückkehrende Ergebnis von PHP ist:

foreach ($arr as $v){ 
    $ts = $v['timestamp']; 
    $p = $v['price']; 
    $po = $v['price_old']; 
    $resp[] = "[" 
            . "'$ts'" . ", " 
            . "$p" . ", " 
            . "$po" 
            . "]"; 
} 

echo implode(',',$resp); 

Wenn ich Rückergebnis aus der Datei Google Chart mit PHP funktionieren nicht. Wenn ich Standardwerte Google-Diagramm verwende. Wo ist das Problem ? Vielen Dank im Voraus und ich entschuldige mich für mein Englisch!

Antwort

1

In der Zeichnungsfunktion haben Sie Neu und Alt als Nummer definiert. Du bekommst Double von PHP.

foreach ($arr as $v){ 
$ts = $v['timestamp']; 
$p = (int) $v['price']; 
$po = (int) $v['price_old']; 
$resp[] = "[" 
           . "'$ts'" . ", " 
           . "$p" . ", " 
           . "$po" 
           . "]"; 
} 

echo implode(',',$resp); 

Bitte versuchen Sie diesen Code.

Hoffe diese Hilfe.

~ K