我在网上提到了一些例子,并修改了functions.php和前端模板来激活ajax调用以获取一些数据。但是我很难理解锄头从请求的网址返回数据。
在functions.php的最后,我补充说,
wp_enqueue_script('jquery');
function myFunction(){
echo "hi";
die();
}
add_action('wp_ajax_myFunction', 'myFunction');
add_action('wp_ajax_nopriv_myFunction', 'myFunction');
在我的自定义模板页面中,我添加了
var datavalue = 'test data string';
jQuery.ajax({
url: "/wp-admin/admin-ajax.php",
method: "GET",
data: { 'datavar' : datavalue }
}).success(function(data) {
console.log("successfully run ajax request..." + data);
}).done(function(){
console.log("I am from done function");
}).fail(function(){
console.log("I am from fail function.");
}).always(function(){
console.log("I am from always function");
});
});
运行之后,我得到了这些回复。
I am from fail function.
I am from always function
我不明白如何从特定网址获取数据并在ajax的成功函数中显示结果。
我甚至不知道这个ajax调用会如何调用function.php中定义的函数?它们有什么关系?
请解释一下。另外我想通过传递关键字来激活对查询数据库的ajax调用,我怎么能在wordpress中做到这一点?
答案 0 :(得分:1)
你的AJAX函数应该包含一个action参数来告诉admin-ajax你想要执行哪个函数。
set glob
(或者,如果您已为其设置,则可以将其包含在您的网址中,如下所示)
url: "/wp-admin/admin-ajax.php",
method: "GET",
data: {
action : 'myFunction'
}
另外,你在functions.php中的函数应该用PHP编写:
url: "/wp-admin/admin-ajax.php?action=myFunction"
答案 1 :(得分:1)
你必须在ajax上使用一个动作,如。
jQuery.ajax({
url: "/wp-admin/admin-ajax.php",
method: "GET",
data: {
action : 'myFunction'
'datavar' : datavalue,
}
});
PHP函数需要编辑。
function myFunction(){
echo 'success calling functions';
wp_die();
}
答案 2 :(得分:0)
您没有在“数据”中传递“action”参数。其中包含回调函数的名称。请查看附件链接。 https://www.sitepoint.com/how-to-use-ajax-in-wordpress-a-real-world-example/
在这里你要做一个回调函数。 Wordpress dsnt使用特定网址。
但是如果您仍想使用特定的网址。按照步骤:- 1.制作一个wordpress模板。 2.在那里添加您的特定网址代码。 3.在管理面板中创建一个页面,并分配您在上面创建的模板。 4.现在该页面的永久链接可以用作jQuery ajax中的特定URL。