Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah saya boleh mengemas kini Carta Google secara dinamik menggunakan AJAX berdasarkan input pengguna daripada menu lungsur?
Carta Google kini dikonfigurasikan untuk mengambil data daripada jadual tertentu berdasarkan DAPATKAN permintaan. Matlamatnya adalah untuk mengemas kini carta ini secara dinamik melalui AJAX berdasarkan pilihan pengguna daripada menu lungsur turun.
Isu teras timbul daripada kekurangan respons daripada carta kepada kemas kini AJAX . Ketidakpadanan format JSON mungkin menghalang Google daripada memaparkan carta.
Kod 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(); // Define column labels $table['cols'] = array( array('label' => 'Time', 'type' => 'string'), array('label' => 'Wind_Speed', 'type' => 'number'), array('label' => 'Wind_Gust', 'type' => 'number') ); // Populate data rows 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); ?>
HTML/Javascript:
<!DOCTYPE> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Wind Graph</title> <script src="http://www.google.com/jsapi"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> google.load('visualization', '1', { callback: function () { // Add event listener to select element $("#users").change(drawChart); function drawChart() { $.ajax({ url: 'getdata.php', // Use value from select element data: 'q=' + $("#users").val(), dataType: 'json', success: function (responseText) { // Use response from PHP for data table 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); } }); } }, packages: ['corechart'] }); </script> </head> <body>
Perbezaan Utama:
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengemas kini Carta Google secara dinamik menggunakan AJAX berdasarkan input pengguna daripada menu lungsur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!