このAchifying Google Visualization chart reloads using ajax の例を使用して、Mysql データベースからデータを動的に取得すると、「Uncaught SyntaxError: Unexpected token <」エラーが発生します。これは私のHTMLファイルです
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.6.1");
google.load('visualization', '1', {packages: ['table']});
</script>
<script type="text/javascript">
function drawVisualization(dataFromAjax) {
var data = new google.visualization.DataTable();
data.addColumn('number', 'InvoiceNo');
data.addColumn('string', 'B/L No');
data.addColumn('date', 'Date');
data.addColumn('string', 'Customer Name');
data.addColumn('number', 'Amount');
data.addRows(dataFromAjax);
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(data);
}
function makeAjaxCall() {
$.ajax({url:'test.php',
data: {},
success: function(responseData) {
var arrayForGviz = eval("(" + responseData + ")");
drawVisualization(responseData);
}
});
}
</script>
</head>
<body>
<input type="button" onclick="makeAjaxCall();return false;" value="Click to get data"></input>
<div id="table"></div>
</body>
</html>
これは私のPHPファイルtest.phpです
$con = mysql_connect("localhost","userName","password"); もし (!$con) { die('接続できませんでした:' .mysql_error()); } mysql_select_db("DB_NAME", $con); $result = mysql_query("call cargosys.rpt_salesByDate('2013/03/05','2013/03/10')"); $output = 配列(); while($row = mysql_fetch_array($result)) { // データを保持する一時配列を作成します $temp = 配列(); // データを追加 $temp[] = $row['inv_no']; $temp[] = ''' . $row['bl_no'] . '''; $temp[] = ''' . $row['inv_date'] . '''; $temp[] = ''' . $row['顧客名'] . '''; $temp[] = $row['Amount']; // 一時配列をカンマ区切りのリストに分解し、出力配列に追加します $output[] = '[' . implode(', ', $temp) . ']'; } // 出力をカンマで区切られたリストに分解し、エコーします echo implode(",\n", $output); //エコー json_encode($output); mysql_close($con);