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 중국어 웹사이트의 기타 관련 기사를 참조하세요!