1

我对这个有点深入,所以我希望有人有一些见识。:)

我正在尝试使用 AJAX 更新 div。AJAX 调用将下拉选择的值发送到 PHP 文件,该文件将执行 pgsql 查询以获取一些数据。我在 RGraph 教程中读到需要将这些数据格式化为 JSON 格式,以便 RGraph 可以解释它,然后将其提供给运行 RGraph 视图的 JS。

这个问题实际上可能是两个单独的问题,但我还是会问:

  1. 是否有一种标准方法可以在 PHP 中获取查询结果并将其输出为 JSON 格式?
  2. 我想在哪里触发使用 JSON 数据的 JS?我尝试对一些初始数据进行硬编码,但图表似乎没有出现。但是,我知道 jQuery 正在正确执行 AJAX 调用,因为我看到了 div 更新(中间有一个“正在加载...”消息,然后返回空白,向我表明一个空响应),所以我想我我只是没有正确界定这个范围。

PS 不,这次我没有犯 $_POST/$_GET 错误。

任何帮助,将不胜感激。谢谢!

编辑1:得到这个。这实际上比我想象的要容易得多。但是,仍然没有正确确定范围。关于 RGraph 如何获取 JSON 对象并将其显示为图形以及如何使用 AJAX 用新图形刷新 div 的任何帮助?

4

1 回答 1

1

这里有一些基于 SVG 的 AJAX 演示页面:

这里有一堆指向 SVG 基本 AJAX 演示的链接,但现在这些演示不再在线 - 它们在下载存档中。所以在这里下载:https ://www.rgraph.net/download.html#stable

这里有一个 JSON 文档页面:

https://www.rgraph.net/svg/docs/the-svg-ajax-functions.html

它的代码示例是这样的:

<script>
    GLOBALS = {};

    function draw()
    {
        RGraph.SVG.AJAX.getJSON('/ajax/getdata.html?json', function (json)
        {
            if (GLOBALS.bar) {
                RGraph.SVG.clear(GLOBALS.bar.svg);
            }

            GLOBALS.bar = new RGraph.SVG.Bar({
                id: 'chart-container',
                data: json.data,
                options: {
                    // Add your own options to configure the chart
                }
            }).draw();
        });
    }

    draw();
</script>

如果您遵循此示例,请在您的网站上创建一个页面,该页面从您的数据库中获取数据并像此页面一样输出:

https://www.rgraph.net/getdata.html?json

请注意,该页面没有 HTML 输出 - 只有 JSON。

然后你可以像上面的代码一样使用 RGraph.SVG.AJAX.getJSON() 函数从你的网页上获取该页面 - 例如 foo.html 所以 foo.html 是包含该 RGraph 代码的内容以上。

如果您希望它重复,那么您可以添加一个计时器,以便后续获取更新它:

setTimeout(function ()
{
    draw();
}, 1000);

我认为这涵盖了一切。不过,我可能遗漏了一些东西。

于 2018-01-17T11:34:47.657 回答