【问题标题】:Ajax + PHP - Sending A Custom Value via Ajax to PHPAjax + PHP - 通过 Ajax 向 PHP 发送自定义值
【发布时间】:2014-06-29 23:58:41
【问题描述】:

这是关于使用 Google 图表的。

我目前正在使用 Google Charts 设置一些折线图。用于创建这些图表的数据通过前端 Ajax 调用从 MySQL 数据库加载到 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;

【问题讨论】:

    标签: javascript php ajax


    【解决方案1】:

    你可以从这两个中选择:

     url: "controller.php?id=" + id ,
    

    或者:

          url: "controller.php",
            type: "GET",
            data: { id: id},
    

    【讨论】:

    • 这是有道理的,我已经尝试过了,但是我如何在 PHP 中访问它呢?我假设这会将 ID 作为 $id 放在变量中?
    • 是的。只需将值分配给 JavaScript 中的变量 id 并像这样传递它,您就可以排序了。可以在函数调用中传递变量:function drawChart(id)
    猜你喜欢
    • 2017-02-24
    • 2011-10-19
    • 2016-08-29
    • 2015-08-17
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 2012-07-11
    • 2012-04-04
    相关资源
    最近更新 更多