函数不会使用AJAX在onClick上运行

时间:2014-05-31 作者:PirateScott

好的,我的代码是要使用下面的jquery代码从函数中提取出来的,但它没有提取代码,我看不出为什么不能。

我的页面代码

<script>
var click_to_choose_user = function(){
jQuery.ajax({
   type: "POST",
   url:  ajaxurl,
   data: "action=twitchuser",  
   success: function(msg){
   jQuery(\'.twich-names\').text(msg)
   }
   });

}
</script>

<?php    

echo \'<span class="twitch-names"> \' . $twitchusername . \'</span>\';
echo \' <form action="xxx" method="post" >\';
echo \' <input type="button" value="Check" onclick="return click_to_choose_user()" />\';
echo \'</form>\';
?>
我的函数代码是从函数中提取的。php

add_action( \'wp_ajax_my_twitchuser\', \'twitchuser_ajax\' );
add_action( \'wp_ajax_nopriv_my_twitchuser\', \'twitchuser_ajax\' );

function twitchuser_ajax() {
$twitchusername = \'MulloIV\';
echo $twitchusername;
console.log( "it\'s working" );
die();
}
我觉得这是数据的一个问题:属性,我不确定哪些数据要发送到服务器,以及用于什么。

3 个回复
最合适的回答,由SO网友:Marcos Rodrigues 整理而成

1) 您的功能正常吗

首先执行aconsole.log( "it\'s working" ); 并在浏览器控制台上进行检查。如果单击时没有显示,则必须重构函数。

2) 您是否定义了ajaxurl

与管理端不同,ajaxurl javascript全局不会自动为您定义,除非您安装了BuddyPress或其他依赖Ajax的插件。因此,与其依赖全局javascript变量,不如使用自己的属性ajaxurl声明一个javascript命名空间对象。

如果不是,则必须硬编码url(不推荐),或者可以使用wp_localize_script()

PS:您可以使用console.log() 太多了

3) 你必须die(); [不是你,而是函数=)]

就像@iEmanuele所说的,你必须die(); 在每个函数结束时,您的ajaxcall

4) Ajax用于登录和注销用户,另一件事是,您只是为未登录的用户启用了Ajaxwp_ajax_nopriv_ 为了能够对登录用户使用脚本,必须添加wp_ajax_

add_action( \'wp_ajax_twitchuser\', \'twitchuser_ajax\' );
add_action( \'wp_ajax_nopriv_twitchuser\', \'twitchuser_ajax\' );

function twitchuser_ajax() {
    $twitchusername = \'MulloIV\';
    echo $twitchusername;
    die();
}
固定:

行动wp_ajax_wp_ajax_nopriv_ 在这种情况下,在ajax调用中必须后跟action参数twitchuser

SO网友:ahmetlutfu

首先,您不能直接在php中使用javascript。

console.log("success"); // this is error inside php;
如果您想检查ajax进程是否正常运行,可以在ajax函数中回显一些内容。然后,您可以将它用作成功函数的参数。

jquery的一部分;

    success : function(result){
      console.log(result);
}

SO网友:Rizwan Ahmad

我想这里一切都很好,看看吧jQuery(\'.twich-names\').text(msg) 然后你打电话

echo \'<span class="twitch-names"> \' . $twitchusername . \'</span>\'; 
类名不同。调用代码的相同名称。一切正常。

结束

相关推荐

表单不能使用AJAX插件将数据插入数据库

我已经为此工作了几个星期,但没有成功。我已经解决了代码中的一个又一个问题,但似乎没有一个更正可以解决我的核心问题。表单没有向数据库中插入任何内容,我也不知道为什么。在这个特定的示例中,在转到以下URL时提交结果:(myurl)/?dname=吉隆坡(&;年龄=56岁;动作=课后。主页是加载的内容。我是从网上的示例和教程中拼凑出来的。我是ajax和WordPress插件的新手,所以我可能遗漏了一些明显的东西。请帮我知道我哪里做错了。排队:add_action( \'plugins_loaded