Я пытаюсь использовать функцию в 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);
}
});
});
Как именно я это сделал?
Я ничего не знаю о программировании на Wordpress, но все, что находится за строкой 10, является кодом JavaScript и должно быть в шаблоне.
Ошибка 500 означает, что произошла ошибка сервера. Скорее всего, это ошибка вашего PHP-кода. Чтобы увидеть сообщение об ошибке действительный, проверьте журнал ошибок сервера. Вы также можете изменить способ отображения ошибок PHP и указать ему, чтобы он отображал все ошибки прямо на экране (это не то, что вы хотите в производственной среде, поскольку он может отображать конфиденциальные данные, но во время разработки вы должны). Вот как показать все ошибки и предупреждения: stackoverflow.com/questions/5438060/…
Могу поспорить, что вы определили обязательный аргумент в своем example_function(), в то время как эти обратные вызовы фактически не передают никаких аргументов. Попробуйте определить обратный вызов как: function example_function($foo = null) { //your code }.






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