首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax + PHP -通过Ajax将自定义值发送到PHP

Ajax + PHP -通过Ajax将自定义值发送到PHP
EN

Stack Overflow用户
提问于 2014-06-30 07:58:42
回答 1查看 64关注 0票数 0

这是关于使用Google Charts的。

我目前正在使用Google Charts设置一些折线图。用于创建这些图表的数据是通过前端Ajax调用从MySQL数据库加载的,以获取数据。

目前,只要我在PHP脚本中手动放置所需的数据,我就可以设置并工作,以获取数据并正确显示它,例如:

代码语言:javascript
复制
    $keyword = "Test";
    $query = $this->db->prepare("SELECT * FROM mytable WHERE keywords = ?");
    $query->bindValue(1, $keyword);

因此,如上面的示例所示,我告诉脚本使用关键字"Test“。但是,我想让它成为一个动态调用,因为我需要生成和显示几个不同的图表,所有这些图表都包含单独的信息。

为了实现这一点,我目前正在根据当前加载的页面在URL中设置一个参数,例如: www.mywebsite.com/chart.php?id=mykeyword

不,我显然可以通过使用(这放在Google Charts Ajax函数的上方)来获取"ID“:

代码语言:javascript
复制
    $id = $_GET["id"]; 

这里我的问题是,我不知道如何通过ajax调用发送自定义数据ID。我尝试了几种方法,但似乎无法将其发送到PHP函数。

这是Google图表ajax:

代码语言:javascript
复制
    <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调用将数据发送到如下所示的控制器:

代码语言:javascript
复制
    public function dataController() {  

        $update = new Chart($db);

        $update->keywordChart();

现在,我知道显然我需要添加$id作为回调,以便可以将其发送到PHP函数。例如:

代码语言:javascript
复制
    dataController($id)

我的问题是,我似乎无法让$id真正通过ajax调用进行发送。

那么,将URL包含在Google Charts Ajax调用中,以便将其发送到controller.php文件的最佳方式是什么呢?

我假设我需要以某种方式将其添加到这里的某处:

代码语言:javascript
复制
        function drawChart() {
          var jsonData = $.ajax({
          url: "controller.php",
          dataType:"json",
          async: false
          }).responseText;
EN

回答 1

Stack Overflow用户

发布于 2014-06-30 08:03:52

您可以从以下两个选项中进行选择:

代码语言:javascript
复制
 url: "controller.php?id=" + id ,

或者:

代码语言:javascript
复制
      url: "controller.php",
        type: "GET",
        data: { id: id},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24481346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档