您好我正在为Word Press开发插件, 管理区域都可以,但我想在前端使用AJAX将一些数据发送到我的服务器。 我在jquery中使用AJAX,如
jQuery.AJAX({ 我的代码..... })
但它不起作用,因为相同的代码方法在管理员方面运作良好。 我发布数据的文件位于我的插件目录中 我附上代码,请检查我做错了什么,谢谢
这是前端文件
jQuery(document).ready(function(){
var url= jQuery('#url').val();
jQuery.ajax({
type:"POST",
URL:url,
data:{
data:'azam'
},
success:function(data)
{
}
})
});
这是我的php文件
function hello($a)
{
$a = $_POST['data'];
echo $a;
}
add_action('wp_ajax_hello', 'hello');
add_action('wp_ajax_nopriv_hello', 'hello');
请不要给我在线链接caz我已经搜索整个互联网但我不知道它是如何工作的。请帮忙
答案 0 :(得分:0)
您的代码看起来大致正确,但这是我的发现:
在hello函数的最后添加die();
您使用的是正确的管理员ajax网址吗?
将此添加到您的functions.php以输出admin ajax url。
function ajaxurl() {
?>
<script type="text/javascript">
var AjaxUrl = "<?php echo admin_url('admin-ajax.php'); ?>";
</script>
<?php
}
add_action('wp_head','ajaxurl');
您需要在数据中添加操作参数
.ajax({
type:"POST",
URL:AjaxUrl, // is this url correct? it should be admin ajax url
data:{
action:'hello',
data:'azam'
},
答案 1 :(得分:0)
如果您使用wp_enqueue_script,我建议您在主php文件中添加此功能。
function plugin_ajax_articles()
{
wp_enqueue_script( "your_js_file", get_stylesheet_directory_uri() . '/your_js_file.js', array('jquery'), "1.0.0", true );
wp_localize_script( 'your_js_file', 'url', admin_url( 'admin-ajax.php' ) );
}
add_action("init", "plugin_ajax_articles");
然后在ur js文件中,URl将起作用。 不要忘记添加&#34; die();&#34;在你的php函数结束时。
如果你有时间,请阅读这篇文章=&gt; Tuto Ajax WordPress
我希望帮助你:)