Wordpress在functions.php中收听$ _POST

时间:2014-08-01 16:16:10

标签: php ajax wordpress

我目前在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

由于

1 个答案:

答案 0 :(得分:3)

这是因为ajax正在提交一个GET变量,而php正在寻找一个POST变量。将ajax类型更改为POST或更改php以使用$ _GET ['user']。