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