gpt4 book ai didi

javascript - 来自 PHP 的最新 XML 文件响应未加载到 Javascript 中

转载 作者:行者123 更新时间:2023-11-28 07:09:32 27 4
gpt4 key购买 nike

我正在尝试借助谷歌图表可视化一些数据。我使用 AJAX-PHP 调用从服务器检索数据。 PHP 文件被编码为写入一个 XML 文件,该文件又被解析并作为数据传递到 google 图表。我面临的问题是,图表没有刷新,但服务器中的 XML 文件每次运行都会刷新。但如果我使用调试器,一切都会按预期进行。我知道这是由于异步调用造成的,但我无法解决它。即使我尝试使用 async = false 但没有用。

当按下提取按钮时,将调用以下函数:

function callforXML(FrDate, ToDate)
{
ajax_page = 'RetrieveData.php';
$.ajax({
type: "GET",
url: ajax_page,
cache: false,
dataType: "text/html",
data: "fdate=" + FrDate + "&tdate=" + ToDate,
success: loadXMLDocintoArray,
error: function(e)
{
alert("Connection to server is interrupted!");
}
});
}

function loadXMLDocintoArray()
{
var xmlhttp;
var x,xx,i;
var ondateXML, swiftXML, manualXML;


var appName = $("#applicationName :selected").text();
var selInterval = $("#interval :selected").text();

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}


xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
x=xmlhttp.responseXML.documentElement.getElementsByTagName("tcount");
var data = new google.visualization.DataTable();

// Declare columns
data.addColumn('string', 'Ticket Date');
data.addColumn('number', 'Swift');
data.addColumn('number', 'Manual');
for (i=0;i<x.length;i++)
{
xx=x[i].getElementsByTagName("ondate");
ondateXML = xx[0].firstChild.nodeValue;

xx=x[i].getElementsByTagName("scount");
swiftXML = xx[0].firstChild.nodeValue;

xx=x[i].getElementsByTagName("mcount");
manualXML = xx[0].firstChild.nodeValue;

data.addRows([[ondateXML,parseInt(swiftXML),parseInt(manualXML)]]);
}
var options = {
title: selInterval + ' Report for ' + appName,
width: 700,
height: 1200,
legend: { position: 'none' },
chart: { title: selInterval + ' Report for ' + appName,
subtitle: ' ' },
bars: 'vertical', // Required for Material Bar Charts.
axes: {
x: {
0: { side: 'top', label: ' '} }
},
bar: { groupWidth: "90%" },
animation:{
duration: 1000,
easing: 'out'}
};

var chart = new google.charts.Bar(document.getElementById('Chart_Div'));
chart.draw(data, options);
}
}

xmlhttp.open("GET","/XML/TicketCount.xml",false);
xmlhttp.send();
}

最佳答案

success 回调函数获取 ajax 调用返回的数据,而您并未传递该数据。

您可能想要更像的东西

success: function(xml) { loadXMLDocIntoArray(xml); }
function loadXMLDocIntoArray(xml) {
... do stuff with 'xml' argument
}

关于javascript - 来自 PHP 的最新 XML 文件响应未加载到 Javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31432831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com