jquery dataTables で作成した htnl テーブルがあります。そのために使用するコードは次のとおりです。
var oTable = jQuery('#webcam-table').dataTable({
"sPaginationType": "full_numbers",
"bStateSave": true,
"aaSorting": [[1,"desc"]],
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 4 ] }
]
});
このテーブルには、ユーザーが 1 つ以上を選択して削除ボタンを押すことができる各行にチェックボックスがあるフォームもあります。これは jquery を使用しますajax
:
jQuery(".deletebutton").on("click", function(e) {
e.preventDefault(); //cancel click event on start
var testchecked = jQuery(':checkbox:checked').length;
if (testchecked == 0) {
alert('Please select at least one video');
e.preventDefault();
}
else
{
if (confirm("Are you sure you want to delete the selected videos?"))
{
var checked = jQuery('input:checkbox:checked').map(function () {
return this.value;
}).get();
var $this = jQuery(this);
jQuery.ajax({
type: 'POST',
url: 'index.php?option=com_recordings&task=deletevideos&format=raw',
data: {checkedarray:checked},
success: function(data){
jQuery('#deleteform input:checkbox').each(function(){
if(this.checked){
jQuery('input:checkbox:checked').parents("tr").remove();
}
});
}
});
}
}
});
これが行うことは、テーブル内の行を削除することです。これは、ページがあり、1つ以上を削除してもテーブルが更新されないため、dataTableに問題がある場所です。
fnDraw
だから私はコードに追加できるはずだと思った:
jQuery('#deleteform input:checkbox').each(function(){
if(this.checked){
jQuery('input:checkbox:checked').parents("tr").remove();
}
oTable.fnDraw();
AJAX を削除した後、行を削除した後、これによりテーブルが更新されると思いました。ただし、これは行を削除することも、それに応じてテーブルを更新することもありません。もちろん、ページを手動で更新すると、すべて問題ありません。選択した行を削除して dataTable を更新する方法についてのアイデアはありますか?