当前位置: 首页 > 知识库问答 >
问题:

在php中不使用ajax调用显示google图表

郎意
2023-03-14

这是我的array.php,json数据来自数据库,我从下面的脚本中得到了一个完美的输出

$table = [];
  $table['cols'] = array(
      array('id' => '', 'label' => 'Topping', 'type' => 'string'),
      array('id' => '', 'label' => 'Slices', 'type' => 'number')
      );    

$tableName = array('1' => "tb", '2' => 'tb1');
foreach ($tableName as $key => $value) {

    $row = [];
    $qry = "SELECT topping, slices FROM $value";
    $result = mysqli_query($con,$qry);
     foreach ($result as $row) {
        $temp = [];
          $temp[] = array('v' => (string) $row['topping']);
      $temp[] = array('v' => (int) $row['slices']); 
      $rows[] = array('c' => $temp);        
     }
     $result->free();
             $table['rows'] = $rows;
}
mysqli_close($con);
$jsonTable = json_encode($table, true);
echo $jsonTable;

**array.php数据输出ex:**

{"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}]

}

这是我的Ajax函数,在这里我从array.php中缩放数据

var jsonData = $.ajax({
url: "array.php",
dataType:"json",
}).responseText;

var data=new google.visualization.dataTable(json.parse(jsonData));var选项={title:'我的日常活动‘};var chart=new google.visualization.piechart(document.getElementById(“piechart”));图表绘制(数据、选项);

**但我还是有错误请帮助**

共有1个答案

葛泳
2023-03-14

好的,我已经将json输出复制到php文件(jsondata.php),如下所示:

$out = '{"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}]}';
echo $out; 

使用它,我对您的javascript进行了一点修改

  var jsonData = $.ajax({
      url: "jsondata.php",
      dataType: "json",
      async: false
      }).responseText;

  // Create our data table out of JSON data loaded from server.
  var data = new google.visualization.DataTable(jsonData);

  // Instantiate and draw our chart, passing in some options.
  var chart = new google.visualization.PieChart(document.getElementById('piechart'));
  var options = { title: 'My Daily Activities' };
  chart.draw(data, options);

注意两件事:

>

  • Ajax调用内部的async:false。这实际上违背了Ajax的本质,但这是google展示示例的方式,也是解决问题的最简单的方法。

    var data=new google.visualization.dataTable(jsonData);

    这对我有用,希望能解决你的问题。

  •  类似资料:
    • 问题内容: 我正在尝试通过AJAX调用显示PDF(在服务器端创建并作为网络流传递给客户端)。我的代码如下: “ inputxml”包含用于服务器创建PDF的输入参数。和成功函数中包含PDF流的“数据”。是否可以在AJAX调用成功功能内的浏览器中打开PDF文件,而无需进行任何页面提交?在服务器端,PDF也不是物理生成的。非常感谢您的帮助。 问题答案: 为什么要通过AJAX加载它?为什么不将其加载到需

    • 问题内容: 我有一个PHP脚本,它会随机生成一个图像。像这样: 我的html看起来像这样: 然后,我有一个jquery文件来处理对按钮的单击,以便在单击按钮时加载新的随机图像: 我使用firebug,可以看到请求实际上已发送,并且响应已成功接收,但是图像没有改变。 我在做什么错,我该如何解决? 问题答案: 我添加了另一个答案,因为我认为以前的答案都无法解决问题。我认为,OP唯一想要的就是单击按钮时

    • 问题内容: 我有以下电话,它根本无法在ie7或8中工作-但在其他所有方面都完美! 我也尝试了以下方法(向URL添加随机数),但未能解决问题: 任何有关如何使它起作用的想法,因为它是页面的重要组成部分。 问题答案: 发现了问题…我发现这是一个虚假的HTML引起了问题,真是不真实!

    • 我想用谷歌可视化应用编程接口显示条形图。我遵循了这个线程中的示例代码:https://vaadin.com/forum/#!/thread/2971952/ 这是我的代码: GVis。JAVA gvis.js gvis连接器。js 代码将加载这两个文件: ui de,table de.css 格式de、默认de、ui de、表格de、corechart de.I.js 但是图表没有出现,也没有JS

    • 问题内容: 简短而有趣: 寻找一种方法来调用PHP文件并使用jQuery和/或Ajax显示进度。调用PHP文件upgrade.php?step = 1,然后将返回的输出附加到#upgradestatus。完成之后,将调用upgrade.php?step = 2并附加输出,直到完成指定数量的步骤。 说明: 我正在尝试为在PHP中运行的软件创建一个插件。该插件将调用PHP文件中的每个步骤以升级每个文件

    • 问题内容: 我正在编写Rails 4.0.2应用程序,并试图在AJAX事件发生后在我的视图中显示Flash通知。 在我看来,我会显示一个日历,其中包含用户可以点击的天数。当他们这样做时,我会通过onclick事件处理程序触发AJAX事件,该事件处理程序会更新我的模型(添加或删除记录)。触发事件后,我将完成页面刷新以显示更新的结果。 我发现我必须在JS click事件期间进行页面刷新,以使视图正确更