谷歌可视化API在本地工作,但不在外部服务器上工作

Google Visualization API working locally, but not on external server?

本文关键字:工作 外部 服务器 可视化 谷歌 API      更新时间:2023-09-26

我正在构建一个动态饼图来使用 Google 可视化 API 和 jQuery 显示选举结果,我让它(有点)在我的本地机器上工作,并希望获得一些反馈,所以将其上传到外部服务器,现在我尝试加载的所有内容都给我一个"无数据"错误。

我有两个文件,一个从数据库中获取数据并将其转换为 JSON,另一个显示可视化效果,具体取决于检查的区域。你可以在这里看到它:

http://www2.lichfielddc.gov.uk/sandbox/pie.php?electionid=14

有什么想法我哪里出错了吗?

干杯

我想我可能正在做某事。

我下载了它并在本地进行了测试,正如您所说,它工作正常。但是,在我使用的数据源(data.php)中,如果我放置延迟(sleep(1)),它就会停止工作。我认为这是因为您正在从 ajax 成功回调中绘制图表。

试试这个:

    function drawVisualization() {          
    $('.poll').click(function() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Party');
    data.addColumn('number', 'Votes');
        var polls = [];
        $('.poll:checked').each(function(){
            polls.push(this.value);
        });
        polls.join(",");
        url = "http://www2.lichfielddc.gov.uk/sandbox/piedata.php?pollid=" + polls;
        $.getJSON(url, function(d) {
            data.addRows(d.length);
            var items = [];
            var num = 0;
            $.each(d, function(i, o) {
                console.log(o);
                data.setValue(num, 0, o['party']);
                data.setValue(num, 1, o['votes']);
                num++;
            });
            new google.visualization.PieChart(document.getElementById('visualization')).
            draw(data);
        });
    });

单步执行代码:当你调用 draw() 方法时,对象 'data' 中没有数据。这可能是因为对数据对象的修改不在同一范围内。

我同意 Tribal 的观点,这是一个时间问题,因为实时版本有时确实有效。还有其他几个潜伏的错误,它们不是呈现问题的背后,但是......

polls.join(",");
url = "http://www2.lichfielddc.gov.uk/sandbox/piedata.php?pollid=" + polls;

polls.join()返回一个字符串,它不会就地执行联接。而且url没有被声明为局部变量