2017-02-24 52 views
1

我想添加表2中的行在表一。Jquery Datatable添加從一個表到另一個行

如果我選擇在複選框列的行,按添加用戶,將在表中添加該行1

旁邊添加用戶按鈕,我有選擇全或無的一個選項,如果我在輸入點擊全部選中

按下按鈕添加用戶後,表2中的所有行將被添加到表1中。

如果我選擇沒有清除所有複選框

如果我點擊全部選中所有的複選框

的jsfiddle:http://jsfiddle.net/f7debwj2/11/

HTML:

<br> 
<br> 
<h1> 
table1 
</h1><br> 
<br> 
<table id="example" class="display" width="100%" cellspacing="0"> 
    <thead> 
    <tr> 
     <th>First name</th> 
     <th>Place</th> 
     <th>Order</th> 
    </tr> 
    </thead> 
</table> 

<br> 
<br> 
<h1> 
table 2 
</h1><br> 
<br> 
<table id="example2" class="display" width="100%" cellspacing="0"> 
    <thead> 
    <tr> 
     <th>First name</th> 
     <th>Place</th> 
     <th>checkbox</th> 
    </tr> 
    </thead> 
</table> 


<div class="col-md-12"> 
    <div class="col-md-6"> 
    <button type="button" class="btn btn-success">Add a user</button> 
    </div> 
    <div class="col-md-6">select all or none 
    <div class="btn-group"> 
     <div class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 
     <input type="checkbox" name="vehicle1" value="Bike"> 
     <i class="fa fa-caret-down" aria-hidden="true"></i> 
     </div> 
     <ul class="dropdown-menu" role="menu"> 
     <li><a href="#">All</a></li> 
     <li><a href="#">None</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 

jQuery的

$(document).ready(function() { 
    var dt = $('#example').dataTable(); 
    dt.fnDestroy(); 
}); 

$(document).ready(function() { 
    var url = 'http://www.json-generator.com/api/json/get/clmDuyndua?indent=2'; 
    var table = $('#example').DataTable({ 
    ajax: url, 
    createdRow: function(row, data, dataIndex) { 
     $(row).attr('id', 'row-' + dataIndex); 
    }, 
    rowReorder: { 
     dataSrc: 'order', 
    }, 
    columns: [{ 
     data: 'order' 
    }, { 
     data: 'name' 
    }, { 
     data: 'place' 
    }] 
    }); 
    table.rowReordering(); 

}); 


$(document).ready(function() { 
    var dt = $('#example2').dataTable(); 
    dt.fnDestroy(); 
}); 

$(document).ready(function() { 
    var url = 'http://www.json-generator.com/api/json/get/cnmZgfsBKa?indent=2'; 
    var table = $('#example2').DataTable({ 
    ajax: url, 
    createdRow: function(row, data, dataIndex) { 
     $(row).attr('id', 'row-' + dataIndex); 
    }, 
    rowReorder: { 
     dataSrc: 'order', 
    }, 
    columns: [{ 
     data: 'order' 
    }, { 
     data: 'name' 
    }, { 
     data: 'checkbox' 
    }] 
    }); 
    table.rowReordering(); 

}); 

$(document).ready(function() { 
    $('body').on('mouseenter', 'input', function() { 
    $('.btn').prop('disabled', true); 
    }); 
    $('body').on('mouseout', 'input', function() { 
    $('.btn').prop('disabled', false); 
    }); 
}); 
+3

這裏沒有問題,你可以編輯你的問題,也許只提供與問題相關的代碼, – Nicolas

+1

沒有問題??? – NDFA

回答

1

我已經稍微改變了你的代碼。此示例看起來適合您的任務和要求。希望它能幫助你。

HTML:

<br> 
<br> 
<h1> 
    table1 
</h1> 
<br> 
<br> 
<table id="example" class="display" width="100%" cellspacing="0"> 
    <thead> 
    <tr> 
     <th>First name</th> 
     <th>Place</th> 
     <th>Order</th> 
    </tr> 
    </thead> 
</table> 

<br> 
<br> 
<h1> 
    table 2 
</h1> 
<br> 
<br> 
<table id="example2" class="display" width="100%" cellspacing="0"> 
    <thead> 
    <tr> 
     <th>First name</th> 
     <th>Place</th> 
     <th>checkbox</th> 
    </tr> 
    </thead> 
</table> 


<div class="col-md-12"> 
    <div class="col-md-6"> 
    <button type="button" class="btn btn-success" id="btnAddUser">Add a user</button> 
    </div> 
    <div class="col-md-6">select all or none 
    <div class="btn-group"> 
     <div class="btn btn-default dropdown-toggle" data-toggle="dropdown"> 
     <input type="checkbox" name="vehicle1" value="Bike"> 
     <i class="fa fa-caret-down" aria-hidden="true"></i> 
     </div> 
     <ul class="dropdown-menu" role="menu"> 
     <li><a id="checkAll">All</a></li> 
     <li><a id="uncheckAll">None</a></li> 
     </ul> 
    </div> 
    </div> 
</div> 

的JavaScript:

function addUser() 
{    
    var $source = $("#example2").DataTable();   
    var names = $($source.rows().nodes()) 
     .filter(':has(:checked)') 
     .map(function() { 
      return $(this).children().first().text();     
     }).toArray(); 

    var $rows = $source.rows(function (i, data) { 
     return names.indexOf('' + data.order) != -1; 
    }); 

    var data = $rows.data(); 

    if (data.length > 0) 
     $("#example").DataTable().rows.add(data.toArray()).draw(); 
} 

function checkAll(check) 
{  
    var $source = $("#example2").DataTable();   
    var names = $($source.rows().nodes()) 
     .find('input[type="checkbox"]') 
     .each(function (i, el) { 
      el.checked = check == 1; 
     }); 

     return false; 
} 

$(document).ready(function() { 
    var dt = $('#example').dataTable(); 
    dt.fnDestroy(); 
}); 

$(document).ready(function() { 
    var url = 'http://www.json-generator.com/api/json/get/clmDuyndua?indent=2'; 
    var table = $('#example').DataTable({ 
     ajax: url, 
     createdRow: function(row, data, dataIndex) { 
      $(row).attr('id', 'row-' + dataIndex); 
     }, 
     rowReorder: { 
      dataSrc: 'order', 
     }, 
     columns: [{ 
      data: 'order' 
     }, { 
      data: 'name' 
     }, { 
      data: 'place' 
     }] 
    }); 
    table.rowReordering(); 
}); 


$(document).ready(function() { 
    var dt = $('#example2').dataTable(); 
    dt.fnDestroy(); 
}); 

$(document).ready(function() { 
    var url = 'http://www.json-generator.com/api/json/get/cnmZgfsBKa?indent=2'; 
    var table = $('#example2').DataTable({ 
     ajax: url, 
     createdRow: function(row, data, dataIndex) { 
      $(row).attr('id', 'row-' + dataIndex); 
     }, 
     rowReorder: { 
      dataSrc: 'order', 
     }, 
     columns: [{ 
      data: 'order' 
     }, { 
      data: 'name' 
     }, { 
      data: 'checkbox' 
     }] 
     }); 
     table.rowReordering(); 
}); 

$(document).ready(function() { 
    $('body').on('mouseenter', 'input', function() { 
     $('.btn').prop('disabled', true); 
    }); 
    $('body').on('mouseout', 'input', function() { 
     $('.btn').prop('disabled', false); 
    }); 

    $('#checkAll').click(function() { checkAll(1);}); 
    $('#uncheckAll').click(function() { checkAll(0);}); 
    $('#btnAddUser').click(function() { addUser(); }); 
});  

的jsfiddle:http://jsfiddle.net/jahn08/f7debwj2/26/

+1

非常感謝你,只有2件事情,我可以將表2中的用戶添加到表1後,從表2中消失?現在用戶還在那裏加入了另一張桌子後明白了嗎?另一件事是:你能幫助這個嗎?我給100分也找到解決方案:http://stackoverflow.com/questions/42444617/jquery-datatable-drag-and-drop-a-row-from-one-table-to-another謝謝 – Raduken

+1

你歡迎!當然,我會在稍後看看這個問題。至於第一個問題,試試這個鏈接:http://jsfiddle.net/jahn08/f7debwj2/27/ –

+2

酷我接受了你的答案,但我可以在4小時內給予賞金:),你認爲你可以幫忙嗎?在另一個問題?非常感謝你保存了本週 – Raduken

相關問題