Сообщение Ajax с функцией php, содержащей аргументы

Я пытаюсь использовать функцию в wordpress как для прямой реализации, так и для реализации ajax, но, похоже, она не работает, потому что у нее есть аргументы. Когда я удаляю аргументы из функции, вызов ajax работает нормально, но с ними я получаю "500 (внутренняя ошибка сервера).

PHP:

add_action('wp_ajax_nopriv_example_function', 'example_function');
add_action('wp_ajax_example_function', 'example_function');    
function example_function($foo) {
    if (is_null($foo)) {
        $foo = $_POST["foo"];
    }
    echo $foo;
}

JS:

$(document).on("change", "select", function(){
   $foo = 'test';
   $.ajax({
      ajax_object.ajax_url,
      type: 'post',
      data: { action: 'example_function', foo: $foo },
      success: function(html) {
        $(div).append(html);
      }
   });
});

Похоже, вы перепутали код PHP и JavaScript?

Dan 24.05.2018 11:56

Как именно я это сделал?

user300979 24.05.2018 11:58

Я ничего не знаю о программировании на Wordpress, но все, что находится за строкой 10, является кодом JavaScript и должно быть в шаблоне.

Dan 24.05.2018 12:01

Ошибка 500 означает, что произошла ошибка сервера. Скорее всего, это ошибка вашего PHP-кода. Чтобы увидеть сообщение об ошибке действительный, проверьте журнал ошибок сервера. Вы также можете изменить способ отображения ошибок PHP и указать ему, чтобы он отображал все ошибки прямо на экране (это не то, что вы хотите в производственной среде, поскольку он может отображать конфиденциальные данные, но во время разработки вы должны). Вот как показать все ошибки и предупреждения: stackoverflow.com/questions/5438060/…

Magnus Eriksson 24.05.2018 12:03

Могу поспорить, что вы определили обязательный аргумент в своем example_function(), в то время как эти обратные вызовы фактически не передают никаких аргументов. Попробуйте определить обратный вызов как: function example_function($foo = null) { //your code }.

Magnus Eriksson 24.05.2018 12:05
Стоит ли изучать 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
5
35
0

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