2012-01-11 54 views
3

我有这样的jQuery代码:Ajax响应数据复选框的id

jQuery("#form").click(function() { 

$("input[name='copyno']:checked").each(function() { 

    checkboxData = "copyno="+$(this).val(); 

id=$(this).val(); 

    jQuery.ajax({ 
     url: "renewall.php", 
     type: "POST", 
     data: checkboxData, 
     cache: false, 
     dataType: "text", 
     success: function(data) { 

    $("#" +id).html(data);    

    } 
}); 
}); 
}); 

什么我'试图做的是把响应数据为特定的div基于复选框的值,在这种情况下,ID,但响应数据只显示在相同的div ID( id = $(this).val();),而不是显示在那里它具有相同的id值。

索姆类OG迭代问题

回答

2

代码的副本,给我的截屏:

$("input[name='copyno']:checked").each(function() { 
    checkboxData = "copyno="+$(this).val(); 
    ids = $(this).val(); 

    jQuery.ajax({ 

     url: "renewall.php", 
     type: "POST", 
     data: checkboxData, 
     cache: false, 
     dataType: "text", 
     success: function(data) { 

      var divs = $(data).filter(function() { 
             return $(this).is('#stil2'); //<-- add semicolon 
      }); 

      divs.each(function() { 
      $("#" + ids).html(this); 
      }); 
     } 
    }); 
}); 

但无论如何,重要的部分是你的内正常声明你的id变量功能,如:

$("input[name='copyno']:checked").each(function() { 
    checkboxData = "copyno="+$(this).val(); 
    var ids = $(this).val(); 

    //rest of your code... 

}); 

所以做注意到VAR初始化程序的的div之前。这应该可以解决你的问题。如果您不这样做,则该变量将被设置为第一个呼叫,但被第二个呼叫覆盖。所以最终当两个电话完成时,他们将只有相同的ID值,这是您的第二个分区。

+0

它确实有帮助。检查我更新的答案。 – Jules 2012-01-11 17:12:33

+0

Thx男人,你救了我很多,我以为我曾试过,但它似乎是一个不同的成功代码... – user1143217 2012-01-12 10:08:37

+0

当我有一个长长的清单copyno的它变得太慢之前块显示,它可能是dom操作html(),任何提示? – user1143217 2012-01-12 13:06:44

0

id在脚本开始一个全局变量,您将能够在AJAX功能,使用它:

var id=null; 

/*... your code... */