Как исправить ошибку в AJAX запросе?

Добрый день, коллеги!
Никак не могу понять, что за ошибка в AJAX-запросе.
Намеренно уменьшаю количество кода.
Есть форма, в которую в цикле выводится массив данных из БД. В форме несколько input type="submit". Один из них отвечает за удаление записи из БД:
<form id="util_proc" name="util_proc" method="post" action="handlers/utilities_processing.php">
...
<input id="delete_utility" name="delete_utility" class="delete_link" type="submit" data-this-id="<?=$util['id']?>" value="Удалить утилиту" >
...
</form>

Атрибут data-this-id отвечает за уникальность каждого input.
Событие click на этом input обрабатываю javascript:
$('#delete_utility').click(function(){
    var data_uid = $(this).data('this-id'); // здесь все правильно - в переменную data_uid записваются верный id
    $.ajax({
      type: 'POST',
      url: '../admin/handlers/utilities_processing.php',
      data: data_uid,
      success: function(data){
        console.log('success');
      },
      error: function(data){
        console.log('error');
      }
    });
  });

Часть кода обработчика:
if ( isset ($_POST['delete_utility']) ) {

}

Обработчик срабатывает (тоже проверено), но переменная из AJAX сюда не доходит. Проверял ответ сервера на вкладке "Сеть" отладчика Firefox.
Проблема в коде javascript: он возвращает error со статус-кодом 0.
Почему не передаются данные?
Пробовал и data: data_uid, и data: {data_uid}, и data: {id: data_uid}, и data: {'id': data_uid}, и {`id`: data_uid} результат один и тот же. Также применял dataType: 'json' и 'text'.
  • Вопрос задан
  • 211 просмотров
Пригласить эксперта
Ответы на вопрос 2
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Пробовал и data: data_uid, и data: {data_uid}, и data: {id: data_uid}, и data: {'id': data_uid}, и {`id`: data_uid} результат один и тот же. Также применял dataType: 'json' и 'text'.

Не задумывались откуда на сервере (не)появляется $_POST['delete_utility']?
Вы бы сделали var_dump($_POST) перед обработчиком и сразу бы увидели в каком виде приходят данные.

$('#delete_utility').click(function(e){
e.preventDefault();
....

иначе форма будет субмититься, страничка перегрузится и ваш аякс уходит в гору. Или сделайте ваши кнопки не тип субмит, а тип баттон.

url: '../admin/handlers/utilities_processing.php',
- урл неплохо бы от корня сайта указывать.
Ответ написан
@Nevea
попробуйте передать data: {'delete_utility': data_uid}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы