Я использую 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;
Я ожидал, что он обновит мою страницу в реальном времени без необходимости обновления, и фактический результат: ничего, на самом деле ничего не происходит. Это что-то особенное для установки или настройки? Включаю круг по исследованиям, спасибо за помощь
Плохая практика - использовать alert('something') для отладки, это останавливает выполнение последнего кода, пока вы не нажмете ОК, попробуйте console.info('click'). Также добавьте .success(), .done() в соответствии с документами api.jquery.com/jquery.ajax.






У вас должны быть обработчики успеха и отказа для запроса 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) для остановки выполнения последнего кода до тех пор, пока пользователь не нажмет «ОК»
alert.error() не является функцией. Правильный метод — window.alert() — см. Документация Window.alert(). Всплывающее диалоговое окно не считается удобным для пользователя, поэтому вы можете вместо этого рассмотреть возможность использования плагина уведомлений jQuery.
Кодовая переменная не объявлена
$('.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', данные: {имя: имя, идентификатор: идентификатор} }); });
Ваш запрос Ajax просто отправляет информацию на сервер и больше ничего не делает. Вам нужно вручную повторно отображать элементы внутри HTML. Проверьте метод
successAjax.