gpt4 book ai didi

php - 从异步 AJAX 响应加载 Google Chart

转载 作者:可可西里 更新时间:2023-11-01 00:10:34 24 4
gpt4 key购买 nike

在旧的 Google Chart API 中,可以使用 PHP 来呈现图表,甚至有一个包装器可以做到这一点: http://code.google.com/p/gchartphp/

但是有了新的图表 API http://code.google.com/apis/chart/它会生成更漂亮的图表,但只能在浏览器中使用 javascript 加载。

我想要达到的效果是通过 AJAX 向服务器提交多项选择表单,让 PHP 更新数据库服务器端,然后返回更新后的图表。

用旧的 API 方式我可以做到这一点。但以新的方式,我会将 javascript 返回给浏览器并将其附加到文档中以呈现图表。因此它不会执行。我相信我可以 eval() 这个 javascript 但这是一种糟糕的形式,不是因为有人可以用它做一些令人讨厌的事情,他们不能 - eval() 对服务器端响应吗?

我该如何克服这个问题?是否有 PHP 包装器来帮助解决这个问题?还是我忽略了另一个原因?

非常感谢

最佳答案

我最终解决这个问题的方式非常明显。我只需要跳出我的想法,从不同的角度来处理它。

我正在尝试使用 PHP 在服务器端处理数据库信息和创建 Google Chart(在本例中为饼图)的所有工作。然后将其作为 AJAX 响应返回。

实际上,我需要做的就是返回创建饼图所需的数据(以及一些额外的元数据,例如目标元素 ID)。我这样做是作为 JSON。然后,通过浏览 Google Charts 文档,我找到了如何使用客户端 javascript 触发 API 来加载返回的 JSON 数据。然后让 Google 代码在客户端呈现图表 - 所以我基本上将所有呈现责任转移到了客户端浏览器。这是新旧图表 API 的不同之处。

它经过了大量的试验和错误,并得到了 Firebug 的大量帮助。一个值得一提的重要触发点是,您需要在收到 JSON 响应之前加载所有 Google JSAPI - 以便在初始页面呈现时 - 并且您必须做一件事:

google.load("visualization", "1", {packages:["corechart"]});

确保它在页面呈现时加载。如果您在页面完全呈现后调用它,那么页面将重新加载。

希望这对某人有帮助。

关于php - 从异步 AJAX 响应加载 Google Chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8448372/

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