根据通过 AJAX 请求的用户输入重新绘制 Google 图表
目标是使用从选定表中提取的数据无缝更新 Google 图表使用 AJAX 在下拉菜单中。但是,由于 jQuery $ 函数未定义,出现错误。
问题分析:
原代码在 URL 中使用 GET 请求来获取数据图表。然而,当需要通过 AJAX 动态获取数据时,如果不改变脚本结构就无法访问所需的数据。
解决方案实现:
网页修改:
AJAX 请求:
PHP 文件(getdata.php):
图表重绘逻辑:
其他注意事项:
示例代码:
HTML/JavaScript:
$(document).ready(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 }); }, error: function(jqXHR, textStatus, errorThrown) { console.log(errorThrown + ': ' + textStatus); } }); } });
PHP ( getdata.php):
<?php require("dbconnect.php"); $db = mysql_connect($server, $user_name, $password); mysql_select_db($database); $sqlQuery = "SELECT * FROM ".$_GET['q']." WHERE Date(Time + INTERVAL 10 HOUR) = Date(UTC_TIMESTAMP() + INTERVAL 10 HOUR)"; $sqlResult = mysql_query($sqlQuery); $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' => (string) $row['Time']); $temp[] = array('v' => (float) $row['Wind_Speed']); $temp[] = array('v' => (float) $row['Wind_Gust']); $rows[] = array('c' => $temp); } $table['rows'] = $rows; echo json_encode($table); ?>
以上是如何使用 AJAX 和用户选择的表动态重绘 Google 图表?的详细内容。更多信息请关注PHP中文网其他相关文章!