数据表未发布所有选定项目

data tables not posting all the selected items

当我尝试 post 从第 1 页中选择值时,datatablecheckboxes 没有问题。

但是当我检查第 1 页的几个 checkboxes 和第 2 页的几个时,它只有 post 来自当前页面(我当前正在查看的页面)的值

在 post 计算我用 jquery 检查的值之前,它正在计算正确的所选行数。

 $(document).ready(function() {
        var table = $('#example').DataTable();

        $('#example tbody').on( 'click', 'tr', function () {
          $(this).toggleClass('selected');
        } );

        $('#button').click( function () {
          alert( table.rows('.selected').data().length +' row(s) selected' );
          alert($(".messageCheckbox").is(":checked").val())
        } );
      } );

正在从数据库中填充数据表

<td><input type="checkbox"  name ="multi[]" value="<?php echo $row['work_id']; ?>"></td>

PHP

$aDoor = $_POST['multi'];

  if(empty($aDoor)) 
  {
    echo("You didn't select any Image.");
  } 
  else
  {
    $N = count($aDoor);

   for($i=0; $i < $N; $i++) {
 // do stuff
} }

试试这个

$(document).ready(function() {
    var table = $('#example').DataTable();

    $('#example tbody').on( 'click', 'tr', function () {
        $($(this),table.fnGetNodes()).toggleClass('selected');
        //$(this).toggleClass('selected');
    });

    $('#button').click(function(){
        alert( table.rows('.selected').data().length +' row(s) selected' );
        alert($(".messageCheckbox").is(":checked").val())
    });
});

此处table.fnGetNodes()将return所有节点table。

更新

试试这个代码

$(document).ready(function() {
    var table = $('#example').DataTable();

    $('#example tbody').on( 'click', 'input[type="checkbox"]', function () {
        $('input[type="checkbox"][value="'+$(this).val()+'"]',table.fnGetNodes()).prop('checked',true);
    });

    $('#button').click(function(){
        alert( $('input[type="checkbox"]:checked',table.fnGetNodes()).length +' row(s) selected' );
        alert($(".messageCheckbox").is(":checked").val())
    });
});
 $(function(){
  $('#button').click(function(){

    $(':checkbox:checked').each(function(i){
      alert($(this).val());
    });
  });
});

尝试一下它会起作用。

$(function(){
      $('#button').click(function(){
        var val = [];
        $(':checkbox:checked').each(function(i){
          val[i] = $(this).val();
        });
alert(val.length);
      });
    });