2012-01-11 10 views
3

に基づいて、私はこのjQueryのコードを持っている:jQueryのAjaxのレスポンスデータは、同じのdivのidに挿入された代わりのチェックボックスの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);    

    } 
}); 
}); 
}); 

やろうと何I'amに基づいて、特定のdivに応答データを置くことですチェックボックスの値、この場合はidですが、レスポンスデータは、同じid値のどこに表示されるのではなく、同じdiv id( id = $(this).val();)にのみ表示されます。

答えて

2

コピーします重要な部分は正しく以内にごid変数を宣言することです。とにかく

$("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); 
      }); 
     } 
    }); 
}); 

:スクリーンキャストで私を示しました。以下のような機能:

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

    //rest of your code... 

}); 

だから右のdiv前に、そのVARインスタンシに注意してください。これはあなたの問題を解決するはずです。これをしないと、変数は最初の呼び出しに設定されますが、2番目の呼び出しによって上書きされます。最終的に両方の呼び出しが終了すると、2番目のdivであるidsの値が同じになります。

+0

それは助けになりました。更新された回答を確認してください。 – Jules

+0

Thx男、あなたは私をたくさん救った、私はそれを試みたと思ったが、それは別の成功のコードであったようだ... – user1143217

+0

私はcopynoの長いリストを持っているときにブロックが表示される前に、それはdom操作html()、任意のsuguestionsかもしれませんか? – user1143217

0

ソム種類OG反復問題はidスクリプトの開始時にグローバル変数を作成し、あなたは、Ajaxの機能でそれを使用することができます:あなたのコードの

var id=null; 

/*... your code... */ 
関連する問題