嵌套的getJson()& PHP PDO

时间:2011-04-22 14:30:29

标签: javascript getjson

我已经查看了有关此问题的其他问题和答案,但似乎无法解决这个问题......

我有一个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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
            });

        });
        theGHtml = theGHtml+"</div>";

    });

    theHtml = theHtml+"</ul>";
});

theDiv.html = theHtml+theGHtml;
}

第二个(即嵌套的)getJson不返回任何内容......两个PHP文件都只使用PDO从SAME表中请求数据。我在每个文件中运行SQL没有任何问题,所以SQL似乎没问题。

这是与getJson调用的同步v。异步问题吗?

1 个答案:

答案 0 :(得分:1)

  

这是同步与异步问题吗?   调用getJson?

可能。我认为这是你的问题:

stateData = data2;

尝试将其更改为:

var stateData = data2;

第一个设置全局变量。第二个设置一个该函数的局部变量。

您可以从重构整个过程中受益,这样您只需要进行一次AJAX调用。看起来你正在拉动与一个团体相关的个人。您可以通过单个脚本在服务器上获得更好的性能,这些脚本可以在需要时返回与该组关联的人员,但只返回该组。

请记住,每次AJAX调用都是服务器的另一个命中。