2012-03-12 64 views
0

我正在做的是在用戶單擊按鈕時顯示圖表。該圖表正在使用JavaScript從PHP文件中提取。這是我實際在做的代碼。Google圖表API不顯示使用javascript/ajax的圖表

這是JavaScript函數獲取圖形並將其附加到HTML DOM

function draw_graph(num) { 

    var xmlhttp; 
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     var output = xmlhttp.responseText; 
     document.getElementById('script_content').innerHTML = output; 
     } 
    } 
    xmlhttp.open("GET","includes/getgraphdata.php?type="+num+"&mode=day",true); 
    xmlhttp.send(); 

} 

這是PHP代碼,我想畫一個簡單的圖形虛擬數據

<?php 

echo " 
    <script type=\"text/javascript\" src=\"https://www.google.com/jsapi\"></script> 
     <script type=\"text/javascript\">     
         google.load('visualization', '1', {packages:['corechart']}); 
         google.setOnLoadCallback(drawChart); 
         function drawChart() { 
          var data = new google.visualization.DataTable(); 
          data.addColumn('string', 'Date'); 
          data.addColumn('number', 'Sell'); 
          data.addColumn('number', 'Purchase'); 
          data.addRows([ 
           ['12-03-2012', 150, 300], 
           ['12-04-2012', 250, 500] 
          ]); 

          var options = { 
           title: 'Graph' 
          }; 
          var chart = new google.visualization.LineChart.(document.getElementById('temp')); 
          chart.draw(data, options); 
         } 
        </script> 
    "; 

的上面的代碼與HTML DOM正確連接,但圖形不顯示。

回答

1

此行

var chart = new google.visualization.LineChart.(document.getElementById('temp')); 

LineChart後刪除.。因此,它是LineChart(document.getElementById('temp'));

也放置alert("statement reached");之間的上述行和下一行來跟蹤錯誤。如果發生錯誤,下一行可能無法執行,因此將其用作調試優勢。

0

我試過之前,你不能使用ajax包含文本javascript代碼。

如果你真的想這樣做,你必須eval() responseText字符串或讓JavaScript根據返回的字符串做些什麼。

例如。

if(responseText == '1'){ 
function1(); 
}else{ 
function2(); 
} 

是否有任何理由,你不能只包括PHP文件呢?

<?php 
require_once 'googleapi.php'; 
?>