1

我有一个带有图表的主页,一个下拉框允许用户选择他们想要查看的图表。

当下拉列表更改时,我希望 AJAX 从我的文件 graphmaker.php 中加载正确的图形。该文件在适当的 DIV 中包含所有图形,即 graph1、graph2 等。

这些图表是使用 Google Charts Visualisation 生成的。

但是,当我这样做时,AJAX 只会加载一个空框,根据我的研究,这是因为页面上的脚本没有被执行。

本质上,我希望 Ajax 能够:

  • 获取graphmaker.php
  • 渲染页面
  • 然后拉出正确的图表

我的代码:

function switchgraph(graph) {
var switchto = $("#graph"+graph+"_dd").val();
$('#graph'+graph).load('graphmaker.php #'+switchto);
}

有什么建议么?

戴夫

4

3 回答 3

2

不要使用删除脚本load的选择器,而是在 AJAX 调用完成后选择相关图形:

function switchgraph(graph) {
    var switchto = $("#graph"+graph+"_dd").val();
    $('#graph'+graph).load('graphmaker.php', function onComplete() {
       function doMoveGraph() {
           $('#graph' + graph).empty().append(toBeUsed);
       }
       function checkMoveGraph() {
            if (!toBeUsed.is(":empty")) {
                doMoveGraph();
            } else {
                setTimeout(checkMoveGraph, 100);
            }
       }
       var toBeUsed = $(this).find('#'+switchto);
       setTimeout(checkMoveGraph, 100);
    });
}
于 2012-09-11T11:36:44.767 回答
0

我认为你需要使用

$.getScript() 

或者你可以试试

$.ajax({
 url: url,
 dataType: "script",
 success: success
});

请检查API

于 2012-09-11T11:35:27.077 回答
0

而不是 $.ajax 我建议你使用 $.post 函数,所以尝试这样的事情:

$.post('graphmaker.php', { data : dataSource },
  function(data) {
    //On Success
  }
)
于 2012-09-11T11:39:27.323 回答