这与使用Google Charts有关。
我目前正在使用Google Charts设置几个折线图。用于创建这些图表的数据正从MySQL数据库通过前端Ajax调用加载到PHP脚本来获取数据。
目前,只要我手动将所需数据放在PHP脚本中,我就设置并正常工作,以获取数据并正确显示,例如:
$keyword = "Test";
$query = $this->db->prepare("SELECT * FROM mytable WHERE keywords = ?");
$query->bindValue(1, $keyword);
因此,如上例所示,我告诉脚本使用" Test"的关键字。 但是,我想让它成为一个动态调用,因为我需要生成并显示一些不同的图表,所有这些图表都包含单独的信息。
为了实现这一点,我目前在URL中根据加载的当前页面设置一个参数,例如: www.mywebsite.com/chart.php?id=mykeyword
不,我显然可以抓住这个" ID"通过使用(它位于Google Charts Ajax函数之上:
$id = $_GET["id"];
我的问题是,我不知道如何通过ajax调用发送自定义数据ID。我尝试了几种方法,但我似乎无法将其发送到PHP函数。
这是Google Charts ajax:
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var jsonData = $.ajax({
url: "controller.php",
dataType:"json",
async: false
}).responseText;
jsonData = JSON.stringify(eval("(" + jsonData + ")"));
var containerId = "chart_div";
try {
var data = new google.visualization.DataTable(jsonData);
var chart = new google.visualization.LineChart(document
.getElementById('chart_div'));
chart.draw(data, {width: 900, height: 220, vAxis: {maxValue: 10}});
} catch (err) {
alert( err.message );
}
}
</script>
Ajax调用将数据发送到如下所示的控制器:
public function dataController() {
$update = new Chart($db);
$update->keywordChart();
现在,我知道显然我需要将$ id添加为回调,以便可以将其发送到PHP函数,例如:
dataController($id)
我的问题是,我似乎无法通过ajax调用实际发送$ id。
那么,将URL ID包含在Google Charts Ajax调用中以便将其发送到controller.php文件的最佳方法是什么?
我认为我需要以某种方式将其添加到某处:
function drawChart() {
var jsonData = $.ajax({
url: "controller.php",
dataType:"json",
async: false
}).responseText;
答案 0 :(得分:0)
您可以从以下两个中进行选择:
url: "controller.php?id=" + id ,
或者:
url: "controller.php",
type: "GET",
data: { id: id},