我已经查看了有关此问题的其他问题和答案,但似乎无法解决这个问题......
我有一个javascript函数:
function getStates(theDiv){
var stateGroupData;
var stateData;
var theGHtml = "";
var theHtml = "<h4>MyPage</h4>";
theHtml = theHtml+"<h5>select a state...</h5>";
$.getJSON("getStateGroups.php", function(data) {
stateGroupData = data;
theHtml = theHtml+"<ul>";
$.each(stateGroupData, function(i,jsonData) {
theHtml = theHtml+"<li><a href='#"+jsonData.groupName+"'>"+jsonData.groupID+"</a></li><br/>";
var theSQL = "getStates.php?gid="+jsonData.groupName;
theGHtml = theGHtml+"<div id='"+jsonData.groupName+"'>";
$.getJSON(theSQL, function(data2) {
stateData = data2;
$.each(stateData, function(i,jsonData2) {
alert(jsonData2.stateName);
theGHtml = theGHtml+"<span sname='"+jsonData2.stateName+"' lat='"+jsonData2.centerLat+"' lon='"+jsonData2.centerLon+"' zom='"+jsonData2.zoom+"'>"+jsonData2.stateName+"</span> ";
});
});
theGHtml = theGHtml+"</div>";
});
theHtml = theHtml+"</ul>";
});
theDiv.html = theHtml+theGHtml;
}
第二个(即嵌套的)getJson不返回任何内容......两个PHP文件都只使用PDO从SAME表中请求数据。我在每个文件中运行SQL没有任何问题,所以SQL似乎没问题。
这是与getJson调用的同步v。异步问题吗?
答案 0 :(得分:1)
这是同步与异步问题吗? 调用getJson?
可能。我认为这是你的问题:
stateData = data2;
尝试将其更改为:
var stateData = data2;
第一个设置全局变量。第二个设置一个该函数的局部变量。
您可以从重构整个过程中受益,这样您只需要进行一次AJAX调用。看起来你正在拉动与一个团体相关的个人。您可以通过单个脚本在服务器上获得更好的性能,这些脚本可以在需要时返回与该组关联的人员,但只返回该组。
请记住,每次AJAX调用都是服务器的另一个命中。