Запрос Ajax не выполняется (полностью призрак)

Я использую PHP, jQuery вместе для создания приложения с базой данных, я новичок в использовании jQuery и ajax, я хотел использовать ajax для ОБНОВЛЕНИЯ моей базы данных без необходимости обновления. Для кода jQuery я взял это видео в качестве примера: https://thewikihow.com/video_Kcka5WBMktw

Я протестировал свой php классической формой и почтовым методом: он работает Я попытался добавить alert() в jQuery для отладки, alert вернул мне ожидаемые значения.

Я открываю консоль с сетью: ничего не появляется относительно моего запроса AJAX.

Вот мой jQuery:

$('.ButtonEdit').on('click', function() {
    let id = $(this).attr('id');
    let name = $('#name'+id).val();
    alert('click');
    req = $.ajax({
        url: "menu.php?Option=updateIgr",
        type : 'POST',
        data : { name : name, code : code }
    });
});

вот мой php, который я хочу запустить с помощью Ajax:

 case "updateIgr":
     require("Class/Ingredient.php");
     require("Class/IngredientsManager.php");
     $data = array ('code' => $_POST['code'],'name' => $_POST['name']);
     $updaterIngredient = new IngredientsManager;
     $updatedIngredient = $updaterIngredient->update(new Ingredient($data));
     break;

Я ожидал, что он обновит мою страницу в реальном времени без необходимости обновления, и фактический результат: ничего, на самом деле ничего не происходит. Это что-то особенное для установки или настройки? Включаю круг по исследованиям, спасибо за помощь

Ваш запрос Ajax просто отправляет информацию на сервер и больше ничего не делает. Вам нужно вручную повторно отображать элементы внутри HTML. Проверьте метод success Ajax.

Justinas 11.02.2019 13:05

Плохая практика - использовать alert('something') для отладки, это останавливает выполнение последнего кода, пока вы не нажмете ОК, попробуйте console.info('click'). Также добавьте .success(), .done() в соответствии с документами api.jquery.com/jquery.ajax.

Andrejs Gubars 11.02.2019 13:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
100
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

У вас должны быть обработчики успеха и отказа для запроса Ajax.

$('.ButtonEdit').on('click', function() {
  let id = $(this).attr('id');
  let name = $('#name'+id).val();

  req = $.ajax({
    url: "menu.php?Option=updateIgr",
    type : 'POST',
    data : { name : name, code : code }
  });

  // Callback handler that will be called on success
  req.done(function (response, status, jqXHR){
    // Log a message to the console
    console.info("It worked!");
  });

  // Callback handler that will be called on failure
  req.fail(function (jqXHR, status, err){
    // Log the error to the console
    console.error("An error occurred: " + status, err);
  });

});

Вам нужно будет обновить обработчики в соответствии с вашими потребностями.

надежно ли делать alert.error («Данные не были обновлены, произошла следующая ошибка:» + statut, err) для остановки выполнения последнего кода до тех пор, пока пользователь не нажмет «ОК»

user10989117 12.02.2019 07:14
alert.error() не является функцией. Правильный метод — window.alert() — см. Документация Window.alert(). Всплывающее диалоговое окно не считается удобным для пользователя, поэтому вы можете вместо этого рассмотреть возможность использования плагина уведомлений jQuery.
Dan Nagle 12.02.2019 11:54
Ответ принят как подходящий

Кодовая переменная не объявлена

$('.ButtonEdit').on('click', function() {
    let id = $(this).attr('id');
    let code = $(this).attr('id');// please assign your code here
    let name = $('#name'+id).val();
    alert('click');
    req = $.ajax({
        url: "menu.php?Option=updateIgr",
        type : 'POST',
        data : { name : name, code : code }
    });
});

Я предлагаю проверить этот код.

$('.ButtonEdit').click(function() { var id = $(this).attr('id'); var name = $('#name'+id).val(); $ajax({ URL: "menu.php?Option=updateIgr", тип: 'POST', данные: {имя: имя, идентификатор: идентификатор} }); });

Другие вопросы по теме