背景:
目標是更新Google 基於圖表用戶透過AJAX 從下拉式選單中進行的選擇,而無需重新載入整個頁面。
問題:
首次嘗試 AJAX 呼叫會產生錯誤:$ 未定義。這很可能是由於程式碼中缺少 jQuery 函式庫引用。
解決方案:
要解決該問題並啟用AJAX 功能,請按照以下步驟操作:
包含jQuery庫參考:
使用JSON 格式取得資料:
刪除Async: False屬性:
刪除內聯事件處理程序:
在圖表選項中只使用一次 hAxis 和 vAxis:
範例程式碼:
getdata.php:
<?php // ... Same database connection and query logic ... $rows = array(); $table = array(); $table['cols'] = array( array('label' => 'Time', 'type' => 'string'), array('label' => 'Wind_Speed', 'type' => 'number'), array('label' => 'Wind_Gust', 'type' => 'number') ); while ($row = mysql_fetch_assoc($sqlResult)) { $temp = array(); $temp[] = array('v' => $row['Time']); $temp[] = array('v' => floatval($row['Wind_Speed'])); $temp[] = array('v' => floatval($row['Wind_Gust'])); $rows[] = array('c' => $temp); } $table['rows'] = $rows; echo json_encode($table); ?>
HTML / JavaScript:
<html> <head> <!-- ... Same as original code ... --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> google.load('visualization', '1', { callback: function () { $("#users").change(drawChart); function drawChart() { $.ajax({ url: 'getdata.php', data: 'q=' + $("#users").val(), dataType: 'json', success: function (responseText) { var data = new google.visualization.DataTable(responseText); new google.visualization.LineChart(document.getElementById('visualization')). draw(data, { curveType: 'none', title: 'Wind Chart', titleTextStyle: { color: 'orange' }, interpolateNulls: 1 }); } }); } }, packages: ['corechart'] }); </script> </head> <body>
附加說明:
以上是如何根據使用者下拉選擇使用 AJAX 動態更新 Google 圖表,而無需重新載入頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!