2016-08-08 62 views
-2

我想從我的數據庫使用ajax檢索一些信息。在Wordpress中的AJAX調用返回0

我創建了一個插件,將我的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

你需要在你的PHP函數使用'exit' – David

回答

0

這是錯誤的:

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

那會產生

action=myAjaxFunction=foo 

這PHP將解析成$_POST['action'] = 'myAjaxFunction=foo'

+1

我改變了一行代碼:var data =「action = myAjaxFunction&txtFName =」+ postData;結果相同。 –