AJAX Call в WordPress возвращается 0

-2

Я пытаюсь получить некоторую информацию из моей базы данных с помощью ajax.

Я создал плагин, который вставляет мой javascript в мой заголовок моей страницы. Код, который я вызываю, выглядит следующим образом:

(function($){
$('#txtFname').on('input', function(){
var postData = $('#txtFname').val();
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest;
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById("frmResult").innerHTML = xmlhttp.responseText;
}    
};
var data= "action=myAjaxFunction="+postData;
xmlhttp.open("POST", "http://www.my-site.com/wp-admin/admin-ajax.php", true);
xmlhttp.send(data);
});
})(jQuery);

В моем файле functions.php для моей темы я использую я добавил следующее (я просто хочу убедиться, что он вызывает эту функцию. У меня уже есть рабочий код для захвата данных из базы данных):

add_action( 'wp_ajax_nopriv_myAjaxFunction', 'myAjaxFunction' );  
add_action( 'wp_ajax_myAjaxFunction', 'myAjaxFunction' );    
function myAjaxFunction(){ 
echo "This function is being called";
}

Когда я вношу изменения в свой вход txtFname, вывод равен 0;

Я просмотрел много предыдущих вопросов и не уверен, что я что-то упустил или просто сделал ошибку в своем коде. Любая помощь будет очень оценена.

  • 0
    вам нужно использовать exit в вашей функции PHP
Теги:
xmlhttprequest

1 ответ

0

Это не верно:

var data= "action=myAjaxFunction="+postData;
                                ^--

Это дало бы

action=myAjaxFunction=foo

который PHP будет анализировать в $_POST['action'] = 'myAjaxFunction=foo'

  • 1
    Я изменил эту строку кода на: var data = "action = myAjaxFunction & txtFName =" + postData; с тем же результатом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню