jQuery嵌套$ .getJSON不起作用

时间:2010-10-19 13:09:30

标签: jquery ajax json

我正在尝试使用jQuery的$.getJSON方法从数据库中检索一些数据以显示在表中,但对于每个获得信息的用户,我必须获得与该用户相关的许多相关系统,需要在第一个嵌套的第二个$.getJSON调用,我尝试将其转换为函数,这似乎正在工作,但我不确定如何将系统数据附加到td一旦它循环通过所有的系统,这是代码......

jQuery:

function systems(id){
//here I try to get the bunch of suppliers and loop through them so that all of them display in the one <td>
    $.getJSON("get_systems.php", {uid:id}, function(data){

       $.each(data, function(i, json){
            return json.supplier_id;
        });

    });
};

//on submit get the province and city values, send it to the search_results.php file to get the users, then call the systems() function to display each users systems
$('#submit').click(function(){
    var province_val = $('[data-custom="province"]').val();
    var city_val = $('[data-custom="city"]').val();

    $.getJSON('search_results.php', { province: province_val, city: city_val }, function(data){

        var check = $(data).size();

        if(check == 0){
            alert("No entries were found");
        }else{
            $('#table').html('');
            $.each(data, function(i, json){
                $('#table').append('<tr><td>'+json.company_name+'</td><td>'+json.contact_number+'</td><td>'+json.email_address+'</td><td>'+systems(json.id)+'</td></tr>')                     
            });
        }
    });
});

我认为代码是非常自我解释的,如果还有其他任何你想知道的话,请给我一个大喊大叫。

提前Thanx!

1 个答案:

答案 0 :(得分:0)

您应该对id元素使用td属性来保存第二次调用的结果,然后使用该属性进行定位..

所以你的第一次填充应该是

$.each(data, function(i, json){
                $('#table').append('<tr><td>'+json.company_name+'</td><td>'+json.contact_number+'</td><td>'+json.email_address+'</td><td id="system_'+i+'"></td></tr>');
                systems('system_'+i, json.id);                
            });

和你的系统功能

function systems(dom_id, id){
//here I try to get the bunch of suppliers and loop through them so that all of them display in the one <td>
    $.getJSON("get_systems.php", {uid:id}, function(data){

       $.each(data, function(i, json){
            $('#'+dom_id).append(json.supplier_id);
        });

    });
};