【问题标题】:php jquery multiple getJson not working what iam done worngphp jquery多个getJson不工作我做错了什么
【发布时间】:2012-08-26 16:31:36
【问题描述】:
$.getJSON("Index/Locations_By_Ratings",function (data) {
    $('#LocationsContainer').html('');
    for (var i = 0; i < data.length; i++)
    {
        $.getJSON('Index/Get_Board_Type',{id:data[i].board_type},function (board_type) {
            var Board = board_type['board_types'];
        });
        $('#LocationsContainer').append('<div class="LocationBox">\
                                            <div class="left">\
                                            <div class="LocationRow"><b>Board Type</b> : '+Board+'</div>\
                                            <div class="LocationRow"><b>Area</b> : '+data[i].location+'</div>\
                                        </div>');
    }
});

在第一次调用 iam 获取 board_types id ,在第二次调用 iam 使用第一次调用 board_types id 获取板类型名称,我想打印 var Board。

【问题讨论】:

    标签: php jquery getjson


    【解决方案1】:

    我在您的代码中发现了 3 个问题:

    • getJSON 是异步的:紧随其后的代码在您从服务器获得答案之前执行(当 Board 尚未填满时)
    • Board 是一个局部变量,在您提供给 getJSON 的回调之外不可见
    • i 在执行回调时改变了值(记住:getJSON 是异步的)

    你可以这样做:

    $.getJSON("Index/Locations_By_Ratings",function (data) {
        $('#LocationsContainer').html('');
        for (var i = 0; i < data.length; i++)
        {
            var theData = data[i];
            $.getJSON('Index/Get_Board_Type', {id:theData.board_type},function (board_type) {
                var Board = board_type['board_types'];
                $('#LocationsContainer').append('<div class="LocationBox">\
                                                    <div class="left">\
                                                    <div class="LocationRow"><b>Board Type</b> : '+Board+'</div>\
                                                    <div class="LocationRow"><b>Area</b> : '+theData.location+'</div>\
                                                </div>');
        });}
    });
    

    【讨论】:

    • 可能还有其他错误。我建议你试试debbuging it line by line in Chrome
    • 你的权利先生我发现另一个错误现在它工作正常先生感谢您的建议..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多