Код: Выделить всё
$(document).on('click', '.remove-btn', function() {
var id = $(this).data('id');
var confirmDelete = confirm("Are you sure you want to remove this User");
formData = {
'form_process' : 'Remove User',
'id' : id,
}
if (confirmDelete) {
$.ajax({
type : 'POST',
url : 'library/page/process/remove_user.php',
data : formData,
dataType: 'json',
beforeSend: function(){
window.scrollTo(0, 0);
$("#loading-overlay").show();
},
success : function(data) {
$("#loading-overlay").hide();
if (!data.success) {
danger ('Process Error', data.errors)
} else {
success ('Success', 'User has been removed successfully.');
setTimeout(function() {
window.location.href = window.parent.CloseDialog();
}, 3000);
}
},
error : function (xhr, ajaxOptions, thrownError) {
$("#loading-overlay").hide();
danger ('Process Error', "There is unknown error occurs. Please contact administrator for system verification")
console.log(xhr.status);
console.log(xhr.responseText);
console.log(thrownError);
console.log('There is unknown error occurs. Please contact administrator for system verification');
}
});
}
})
Код: Выделить всё
if($_POST['form_process'] == 'Remove User') {
$training_info = $c_eta->_get_user_info($_POST['id']);
if (count($training_info) > 0) {
if ($c_eta->_remove_user($_POST['id'])) {
$form_data['success'] = true;
} else {
$form_data['success'] = false;
$form_data['errors'] = "Unable to remove user";
}
echo json_encode($form_data);
return;
}
}
Код: Выделить всё
{"success":true}
Я попробовал добавить заголовок('Content-Type: application/json'); перед echo json_encode($form_data) ; как предложено в одном из сообщений здесь, однако это не работает.
ОБНОВЛЕНИЕ:
Ниже приведены значения журнала. которое отображалось на вкладке консоли браузера:
xhr.status = 200
xhr.responseText = 49{"success":true
thrownError = SyntaxError: Неожиданный символ без пробелов после JSON в позиции 4 (строка 2, столбец 3)
Я не уверен, где я ошибся в синтаксической ошибке, но если Я изменил тип данных: text он будет здесь:
Код: Выделить всё
if (!data.success) {
danger ('Process Error', data.errors)
}
ОБНОВЛЕНИЕ 2.0:
Я решил, что проблема связана с таблицей данных, в которой находится кнопка удаления. На основании ошибки xhr.responseText = 49{"success":true, упомянутой выше, 49 — это идентификатор данных, которые необходимо удалить. Он добавился к ответу json. Ниже приведен код моей кнопки удаления:
Код: Выделить всё
array(
'db' => 'id',
'dt' => 5,
'tbl_field' => 'eta.id',
'formatter' => function($d, $row) {
$id = $d;
$remove = '' .
'
[img]assets/img/delete.png[/img]
';
return $remove;
})
Код: Выделить всё
userDatatable.on('draw.dt', function() {
$('#user_datatable').find('.remove-btn').remove();
$('#user_datatable').find('tbody tr').each(function() {
var id = $(this).find('td:eq(5)').text(); //row id
var buttonHtml = '
[img]assets/img/delete.png[/img]
';
$(this).find('td:eq(5)').html(buttonHtml);
});
Подробнее здесь: https://stackoverflow.com/questions/782 ... of-success