如果ajax请求成功,我正在寻找一种方法来调用php函数。在ajax成功加载php函数
基本设置代码:
wp_register_script('theme-follow-me-ajax', ...);
wp_localize_script('theme-follow-me-ajax', 'ajax_setting', array(
'ajax_url' => admin_url('admin-ajax.php'),
'ajax_follow_error' => $this->km_follow_me_error(),
....
));
wp_enqueue_script('theme-follow-me-ajax');
内容显示错误,这应该是定制
public function km_follow_me_error() {
$content = esc_html__('An error happened. We\'re unable to complete your request.', 'theme');
echo apply_filters('theme_hook_follow_me_error_message', $content);
}
Ajax调用:
$.ajax({
url : ajax_setting.ajax_url,
type : 'post',
data: {
action : 'km_ajax_follow_me',
security : ajax_setting.ajax_nonce,
...
},
success: function(data) {
$('.km-follow-me').html(ajax_setting.ajax_follow_success).hide().fadeIn('slow');
//console.log(ajax_setting.ajax_follow_success);
},
})
WP wp_ajax_
功能
public function addon_ajax_follow_me() {
check_ajax_referer('km-ajax-create-nonce', 'security');
... update user meta ...
wp_die();
}
$this->loader->add_action('wp_ajax_km_ajax_follow_me', $plugin_public, 'addon_ajax_follow_me');
在控制台中,我得到了null
消息,所以它没有抓取km_follow_me_error
函数。
有没有更好的方法?
您的第一个有效的“调用PHP函数”的ajax调用。这是这样做的正确方法,没有办法直接从脚本执行,因为PHP在服务器上运行,JS在客户端上运行,并且在页面生命周期中的不同时间也运行。因此,要调用另一个PHP函数,您需要重复相同的模式,即另一个Ajax调用另一个URL,它将运行一些PHP来调用您需要的函数,并将结果返回给浏览器。 – ADyson
你可以创建一个例子吗?或者知道更详细地解释这个问题的教程?大多数关于wp ajax的教程并未涵盖此主题(ajax中的ajax)。 – kiarashi
没有什么。在第一个ajax调用的成功函数中,使用相同的语法创建另一个ajax调用。对不起,我会认为这很明显,你已经知道如何进行ajax调用。顺便说一句,这是特定于WordPress的。 – ADyson