使用ajax复制JQplot图表

使用ajax复制JQplot图表,ajax,json,jqplot,Ajax,Json,Jqplot,我一直在尝试用不同的方法解决这个问题,但并没有让它像预期的那样工作,我觉得这没什么大不了的(我真的希望如此),但我在Ajax和jQuery方面的经验和技能有点有限,这就是为什么我需要您的专业知识 我正在制作一张类似于这里的图表。但在我的例子中,json文件是根据用户从选择框中选择的值生成的。我正在使用2个文件和ajax调用来实现这一点: -AnnualB.html是选择框所在的文件,应显示图表 -Index.php是对数据库进行查询(使用从AnnualB.html中的selectbox获得的值)

我一直在尝试用不同的方法解决这个问题,但并没有让它像预期的那样工作,我觉得这没什么大不了的(我真的希望如此),但我在Ajax和jQuery方面的经验和技能有点有限,这就是为什么我需要您的专业知识

我正在制作一张类似于这里的图表。但在我的例子中,json文件是根据用户从选择框中选择的值生成的。我正在使用2个文件和ajax调用来实现这一点:

-AnnualB.html是选择框所在的文件,应显示图表

-Index.php是对数据库进行查询(使用从AnnualB.html中的selectbox获得的值)并生成json数组的文件

在AnnualB.html中,我使用GET方法从selectbox中检索值并将其发送到Index.php,后者生成json数据。基于这些json数据,图表必须以年度格式创建。。。这就是我的问题所在。生成图表的函数工作正常,发送select值并返回json的调用也工作正常(已与Firebug进行了检查),但我知道缺少了一些东西(但还不知道是什么),因为我无法将json数据传递给生成图表的函数

我在AnnualB.html中的代码是这样的(用…)缩写一些不相关的信息:

函数生成图表(如果传递了json数据,则工作正常)

Ajax调用(可能是我的错误/遗漏)

选择框

提前感谢您的耐心和帮助

var plot1 = undefined;
var plotOptions = undefined;

function CreateGraph() { 
    $.ajax({
        async: false,
        url: "./index.php",
        dataType:'json',
        success: function(data) {
            var series = fn... // Convert your json Data to array
            if(plot1 != undefined)
            {
                plot1.destroy();
            }
            plot1 = $.jqplot('Chart1', series, plotOptions);
        }
    });
}

$(function(){
    $.jqplot.config.enablePlugins = true;
    plotOptions = {...}; // jqPlot options
    CreateGraph();
});
希望这能对你有所帮助


希望这能对你有所帮助。

我意识到这个问题的答案比我预期的要简单。 我不需要进行整个
函数LoadGraph(int)
ajax调用,而是需要调用函数中的tasel值
?tasel=“+int
,以生成如下图表(已经在进行ajax调用):


我意识到这个问题的答案比我预期的要简单。 我不需要进行整个
函数LoadGraph(int)
ajax调用,而是需要调用函数中的tasel值
?tasel=“+int
,以生成如下图表(已经在进行ajax调用):


谢谢你的回答。。。但我才意识到答案比我想象的要简单。我不需要再打第二个电话了。我只需要将
?tasel=“+int
参数添加到用于绘制图形的url。感谢您的回答…但我刚刚意识到答案比我预期的要简单。我不需要进行第二次调用。我只需要将
?tasel=“+int
参数添加到用于绘制图形的url。
function LoadGraph(int)
{
if (window.XMLHttpRequest)
  {xmlhttp=new XMLHttpRequest();}
else
  {xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
xmlhttp.open("GET","index.php?tasel="+int,true);
xmlhttp.send();
xmlhttp.onreadystatechange=function()
  {
    CreateGraph(int)
    }
}
<select name="tasel" size="1" onchange="LoadGraph(this.value)">
<option value="">Select accounts type:</option>
  <option value="3">Tuloslaskelma</option>
  <option value="2">Tasevastattava</option>
  <option value="1">Tasevastaava</option>
</select>
$tasel = $_REQUEST['tasel'];
if ($tasel == ...2)
{...}
.
.
.
echo "[",$selite, ",";// These 2 variables create the json array
echo $finaljson, "]";
var plot1 = undefined;
var plotOptions = undefined;

function CreateGraph() { 
    $.ajax({
        async: false,
        url: "./index.php",
        dataType:'json',
        success: function(data) {
            var series = fn... // Convert your json Data to array
            if(plot1 != undefined)
            {
                plot1.destroy();
            }
            plot1 = $.jqplot('Chart1', series, plotOptions);
        }
    });
}

$(function(){
    $.jqplot.config.enablePlugins = true;
    plotOptions = {...}; // jqPlot options
    CreateGraph();
});
function CreateGraph() { 
    $(document).ready(function(){
        var ajaxDataRenderer = function(url, plot) {
            var ret = null;
            $.ajax({
                async: false,
                url: url,
                dataType:'json',
                success: function(data) {
                    ret = data; 
                }
            });
            return ret; 
        };

    $.jqplot.config.enablePlugins = true;
    var jsonurl = "./index.php?tasel="+int;
    var plotData = ajaxDataRenderer(jsonurl); 
    var series = ...
    plot1 = $.jqplot('Chart1', series,{...}
}