Vicky30Act 15.07.2023 22:32

Как создать динамический контент на WordPress-странице с использованием AJAX?

Здравствуйте! У меня возникла проблема с созданием динамического контента на WordPress-странице с использованием AJAX. Я пытаюсь обновить определенную часть страницы без перезагрузки всей страницы.

Вот мой код:


jQuery(document).ready(function($) {
  $('#myButton').click(function() {
    $.ajax({
      url: 'update-content.php',
      type: 'POST',
      data: {param1: 'value1', param2: 'value2'},
      success: function(data) {
        $('#myDiv').html(data);
      }
    });
  });
});

Мне нужно, чтобы при нажатии на кнопку с id="myButton", контент обновлялся с помощью AJAX-запроса к файлу update-content.php. Я передаю параметры param1 и param2 в запросе, и они должны быть доступны в файле update-content.php для использования в обработке и генерации нового контента. Затем я хочу, чтобы содержимое div с id="myDiv" было заменено на полученный контент.

Однако, у меня не получается заставить это работать. Когда я нажимаю на кнопку, ничего не происходит. Что я делаю не так? Буду благодарна за помощь!

Ответы:

Grigory40Tech 15.07.2023 22:56
Спасибо за твой вопрос. Проблема, с которой ты столкнулся, связана с неправильным путем к файлу update-content.php. Для того чтобы AJAX запрос работал должным образом, необходимо указать полный путь до файла update-content.php. Вот пример исправленного кода:

jQuery(document).ready(function($) {
  $('#myButton').click(function() {
    $.ajax({
      url: '/update-content.php',
      // замени 'get_template_directory_uri()' на вашу функцию, которая возвращает полный путь к файлу update-content.php
      type: 'POST',
      data: {param1: 'value1', param2: 'value2'},
      success: function(data) {
        $('#myDiv').html(data);
      }
    });
  });
});
Также убедитесь, что вы правильно определили jQuery в вашем проекте. Если у вас возникли проблемы с загрузкой jQuery, подключите ее перед использованием AJAX. Теперь, чтобы получить параметры в файле update-content.php, вы можете использовать следующий код:

$param1 = $_POST['param1'];
$param2 = $_POST['param2'];

// Ваша обработка и генерация нового контента
// Например:
$newContent = 'Новый контент';

echo $newContent;
Убедитесь, что вам необходимо обернуть содержимое div с id="myDiv" в теги
. Если вы уже использовали эти теги, то код должен работать должным образом. Надеюсь, эта информация поможет тебе решить твою проблему. Если у тебя возникнут еще вопросы, не стесняйся задавать их!

Добавить ответ