gpt4 book ai didi

javascript - 如何根据按钮点击重新加载我的谷歌图表?

转载 作者:行者123 更新时间:2023-11-28 06:02:34 28 4
gpt4 key购买 nike

这是我用来显示图表和显示票数的代码。它运行得很好。

在此代码中,当我单击刷新按钮时,投票将在不刷新页面的情况下更新。我怎样才能做到这一点?

<div id="barchart" style="width: 100%; height: 200px;margin-top:0px;"></div>

<button>Refresh</button>

<?php
$q_id = $row['q_id'];
include "connection.php";
$sql1 = mysql_query("SELECT * FROM votes where q_id='$q_id'");
$count1 = mysql_num_rows($sql1);

$sql2 = mysql_query("SELECT * FROM votes where q_id='$q_id' and answer='Yes'");
$count2 = mysql_num_rows($sql2);

$sql3 = mysql_query("SELECT * FROM votes where q_id='$q_id' and answer='No'");
$count3 = mysql_num_rows($sql3);
?>

<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});google.setOnLoadCallback(drawChart);
google.setOnLoadCallback(render_applicant_sources);

function drawChart() {
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('string', 'Task');
dataTable.addColumn('number', 'Hours per Day');
// A column for custom tooltip content
dataTable.addColumn({type: 'string', role: 'tooltip'});
dataTable.addRows([
['<?php echo "Yes"; echo " "; echo ' ('.$count2.' '.$vname1.')'; ?>', <?php echo $count2; ?> ,'<?php echo "Yes"; ?>'],
['<?php echo "No"; echo " "; echo ' ('.$count3.' '.$vname2.')'; ?>', <?php echo $count3; ?>,'<?php echo "No"; ?>']
]);

var chart = new google.visualization.PieChart(document.getElementById('barchart'));

var options = {
backgroundColor: 'transparent',
pieSliceText:'none',
chartArea: {top: 10},
titleTextStyle: {bold: false},
enableInteractivity: false,
legend: {position: 'labeled',textStyle: {color: '#000',fontSize:13}},
height:250,
fontName:"'Source Sans Pro', sans-serif",
tooltip: {
text: 'value'
}
};
chart.draw(dataTable, options);

}

最佳答案

实现此目的的最常见方法:

  • 不要使用内联 PHP 从数据库加载数据,而是使用一个服务,即一个专用 URL,它(使用相同的 PHP)以 JSON 格式返回此数据(最好)。然后在加载页面时进行 AJAX JavaScript 调用以获取此数据并将其存储在某些 JavaScript 数据结构中。
  • 不要使用内联 PHP 将此数据插入到图表中,而是使用前面提到的 JavaScript 数据

如果您通过这种方式获取数据,刷新按钮只需再次执行以下步骤:从服务 URL 获取新数据并根据该数据重新绘制图表。这种设计有时称为面向服务的架构 (SOA)。

关于javascript - 如何根据按钮点击重新加载我的谷歌图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160799/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com