WordPress监听函数.php中的$_POST

时间:2014-08-01 作者:user2028856

我目前在我的functions.php 检查数据库中是否存在用户名。

function check_username() {
       $username = $_POST[\'user\'];
       if ( username_exists( $username ) ) {
           $return[\'user_exists\'] = true; 
       }
       else {
           $return[\'user_exists\'] = false;
       }
       echo json_encode($return);
       die();
}
add_action(\'wp_ajax_check_username\', \'check_username\');
我使用Ajax使用适当的用户名调用该函数:

$.ajax({
    url : "http://examle.com/wp-admin/admin-ajax.php",
    type : "GET",
    dataType : "json",
    cache : false,
    data : {
        action : \'check_username\',
        user: \'test\'
    },
    success : function (json) {
        if (json.user_exists) {
            alert(json.user_exists);
        }
    }
});
问题是$username 退货null 而不是test. 我已经尝试了几个小时了,现在不同的组合都返回null。

分配此参数可以使上述php函数正常工作$username = \'test\'; 所以我很确定这不是php代码的问题。

所以我的问题是,如何得到变量$username 侦听并获取正确的参数,而不是null?

2 个回复
最合适的回答,由SO网友:Chinmoy Kumar Paul 整理而成

请更改类型

type : "GET",

type : "POST",

SO网友:JMau

虽然金莫伊的回答是正确的,但我建议你使用wp_send_json. 在使用ajax时,这非常有用。它包含了流程的每个重要部分,包括安全性。

在现实生活中,你可以这样使用它:

wp_send_json_success( $data);//successful requests
wp_send_json_error( $data );// errors
它们返回一个用json编码的$数据的数组,并设置一些布尔值,以便使用jQuery部分更轻松。

结束

相关推荐

在AJAX操作中使用jQuery序列化实现插件

我正在写一个插件,表单中输入字段的动态编号。为了通过ajax提交表单,我使用了jquery serialize()函数。$(\".submit\").submit(function( event ) { event.preventDefault(); var data = { action: \'wpaie_ajax_action\', operation: \'import\',