2012-01-11 52 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... */