我一直在尝试以不同的方式解决这个问题,但没有让它按预期工作,我觉得这没什么大不了的(我真的希望如此)但我在 Ajax 和 jQuery 方面的经验和技能有点有限为什么我呼吁你的专业知识!
我正在制作一张类似于http://www.jqplot.com/tests/data-renderers.php的图表。但在我的情况下,json文件是根据用户从选择框中选择的值生成的。我正在使用 2 个文件和 ajax 调用来完成此操作:
-AnnualB.html是选择框所在的文件,应该显示图表。
-Index.php是对数据库进行查询的文件(使用从 AnnualB.html 中的选择框获得的值)并生成 json 数组。
在 AnnualB.html 中,我使用 GET 方法从选择框中检索值并将其发送到 Index.php,后者生成 json 数据。基于该json数据,必须在AnnualB中创建图表......这就是我的问题所在。生成图表的函数工作正常,发送选择值并返回 json 的调用也正常工作(已使用 Firebug 检查),但我知道缺少一些东西(但还不知道什么),因为我没有' t 设法将 json 数据传递给生成图表的函数。
我在 AnnualB.html 中的代码是这样的(用...缩写一些不相关的信息):
生成图表的功能(如果传递了json数据,则可以正常工作)
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";
var plotData = ajaxDataRenderer(jsonurl);
var series = ...
plot1 = $.jqplot('Chart1', series,{...}}
Ajax 调用(可能是我的错误/遗漏在哪里)
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>
The related code in Index.php goes like this (Is working ok when the value of the select box (tasel) is passed)):
$tasel = $_REQUEST['tasel'];
if ($tasel == ...2)
{...}
.
.
.
echo "[",$selite, ",";// These 2 variables create the json array
echo $finaljson, "]";
提前感谢您的耐心和帮助!