来自php函数的ajax html $ _POST值返回null

时间:2015-04-08 01:58:40

标签: javascript php jquery ajax wordpress

我有这个html字段

<input type='text' name='newusername' value='' class='input-required' id='username'>

这是我function.php

中的PHP代码
add_action('wp_ajax_checkUsernameExistentVal', 'checkUsernameExistentVal');
add_action('wp_ajax_nopriv_checkUsernameExistentVal', 'checkUsernameExistentVal');
function checkUsernameExistentVal(){
    $username = $_POST['newusername']; // it alwas null?
    // $username = 'existedusuer'; // works fine
    $val = checkCOntactUsernameExist($username);

    if ($val){
        $usernname_val= 'false';
    }else{
        $usernname_val = 'true';
    }
    // I concatenate `$username` to check if it has a value but it is always null?
    echo json_encode(array("validation" => $usernname_val.'-'.$val.'-'.$username));
    wp_die();

}

这是我的scipt.js

jQuery('#username').blur(function() {
        jQuery.ajax(
        {
            url: ajax_url,
            type: "POST",
            dataType: "json",
            data: {
                action: 'checkUsernameExistentVal',
                email: jQuery(this).val(),
            },
            async: false,
            success: function (data)
            {
                alert(data + ' | '+ data.validation);
                // data.validation value is always 'true--'??

            },

        });

    });

我不知道为什么function.php$_POST['newusername']中{{1}}中的函数始终为空...你对此有什么看法吗?似乎我的其他代码正在工作,但这不是......

2 个答案:

答案 0 :(得分:1)

您在数据中传递jquery电子邮件,以便传递您应该传递的变量。 因为你在电子邮件中传递了价值。但是在$ _POST [&#39;用户名&#39;]中获取价值。所以在那个变量值是null $ username = $ _POST [&#39; 电子邮件&#39;];

答案 1 :(得分:0)

您错过了该功能中的参数。您需要提供发布到函数的变量。

function checkUsernameExistentVal($usernameParam)