Я хочу перезагрузить Jquery DataTable после удаления выбранных строк в таблице.
1-Когда я нажимаю кнопку удаления, он сохраняет значения всех выбранных данных в переменной (var = checkbox),
затем я передаю эти данные в другой php-файл с именем delete.php (delete.php выполняет sql-операцию и удаляет выбранные данные из базы данных "). После успешного завершения операции я хочу перезагрузить таблицы данных с новыми данными, чтобы перезапуститьdatatable Я использую table.ajax.reload (), но выдает ошибку («Предупреждение DataTables: таблица id = testtable - Неверный ответ JSON.»)
таблица перезагружается правильно, когда я вручную обновляю ее из браузера
Я перепробовал множество решений, указанных в stackoverflow, но у меня ничего не работает, как.
1-table.ajax.reload (), он выдает ошибку недопустимого ответа json.
2-я также проверяю ответ сервера в ("firefox-> web developer-> networt-> XHR"), и он дает правильный ответ.
Edit-мой сервер дает ответ в виде test / html.
как я могу получить новые данные из ответа сервера, который используется для перезагрузки таблиц данных
<script>
//Delete conformation message
/***************************/
//SelectAll checkBox
/****************************/
$(document).ready(function(){
var table= $('#testtable').DataTable({
autoWidth: true,
"processing": true,
"serverSide": false,
"deferRender": true,
order: [[ 1, "asc" ]]
});
$('#checkall').click(function(){
var checked = this.checked;
table.column(0).nodes().to$().each(function(index) {
if (checked) {
$(this).find('.delete_checkbox').prop('checked', 'checked');
}
else {
$(this).find('.delete_checkbox').removeProp('checked');
}
});
table.draw();
});
/********************************/
//Select indivisual checkBox
/*******************************/
$('.delete_checkbox').click(function(){
if($(this).is(':checked'))
{
$(this).closest('tr').addClass('removeRow');
}
else
{
$(this).closest('tr').removeClass('removeRow');
}
});
/*******************************/
//Deletion of Data
/***********************************/
$('#delete_all').click(function(){
var checkbox = table.$('input').serializeArray();
console.log(typeof(checkbox));
if(checkbox.length > 0)
{
var result=confirm("Are you sure");
if(result==true)
{
var result = checkbox.map(a => a.value);
// var result=JSON.stringify(checkbox.map(a => a.value));
console.log(result);
$.ajax({
contentType: "application/json; charset=utf-8",
url:"delete.php",
method:"POST",
data:{checkbox_id:result},
success:function(data)
{
table.ajax.reload();
//console.log("data");
}
});
}
else {
return false;
}
}
else
{
alert("Select atleast one records");
}
});
/******************************************/
});
</script>
<html>
<head>
<title>Delete Multiple Records using PHP Ajax with Animated Effect</title>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.datatables.net/1.10.4/js/jquery.dataTables.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.4/css/jquery.dataTables.min.css">
</head>
<body >
<div class="container">
<br />
<div class="table-responsive">
<h3 align="center">Delete Multiple Records using PHP Ajax with Animated Effect</h3><br />
<div class="table-responsive">
<input type="checkbox" id="checkall" autocomplete="off"/>
<button type="button" id="delete_all" class="btn btn-danger btn-xs">Delete</button>
<table id ="testtable" class="table table-bordered">
<thead>
<tr>
<th class='no-sort' width="10%">
</th>
<th width="20%" height="30%">Name</th>
<th width="38%">Address</th>
<th width="7%">Gender</th>
<th width="25%">Designation</th>
<th width="5%">Age</th>
</tr>
</thead>
<?php
foreach($result as $row)
{
echo '
<tr>
<td>
<input type="checkbox" name="delete_checkbox" autocomplete="off" class="delete_checkbox" value="'.$row["id"].'" />
</td>
<td>'.$row["name"].'</td>
<td>'.$row["address"].'</td>
<td>'.$row["gender"].'</td>
<td>'.$row["designation"].'</td>
<td>'.$row["age"].'</td>
</tr>
';
}
?>
</table>
</div>
</div>
</div>
</body>
</html>