我正在尝试使用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 :(得分:0)
这是错误的:
var data= "action=myAjaxFunction="+postData;
^--
那会产生
action=myAjaxFunction=foo
PHP将解析为$_POST['action'] = 'myAjaxFunction=foo'