AJAX Success功能永远不会成真

时间:2017-07-06 11:02:36

标签: php jquery ajax

我不知道为什么我的成功功能不起作用。我的意思是虽然它将JSON数据传递给PHP文件并更改了密码。

// this is the id of the form
$("#password_form").submit(function(e) {

    e.preventDefault();
    $(".verify-user-loader").addClass("force-display-block");
    password = $("input#password-reset").val();
    url = 'reset-pass.php';

    $.ajax({

        type : 'POST',
        url : url,
        dataType : 'json',
        data : {
                cardnumber: <?php echo '\''.$cardnumber.'\''; ?>,
                act_token: <?php echo '\''.$activationToken.'\''; ?>,
                password: password
        },
        success : function(success){
            alert("success");
        },
        error : function(request, error) {
            console.log(arguments);
            alert(" Can't do because: " + error);
        }

    });

});

此文件按预期工作,它使用POST数据更改密码

重置-pass.php

include_once '/../login/user.class.php';


$activationToken = $_POST['act_token'];
$cardnumber = $_POST['cardnumber'];
$password = $_POST['password'];

$user = new User();

$verifyToken = $user->verifyToken( $activationToken, $cardnumber );

if ($verifyToken['status'] === true) {

    $tokenStatus = "inactive";
    $user->signUp( $cardnumber, $password );
    $user->changeTokenStatus( $cardnumber, $tokenStatus );

    $success = true;

    return $success;

}else{
    print_r($verifyToken);
}

2 个答案:

答案 0 :(得分:0)

1)您需要echo $success;而不是return $success;

Ajax响应应该是任何浏览器(i.e like html or echo or print_r these are browser output )。而不是return

2)简单地添加像这样的数据

........

data : {
           cardnumber: '<?php echo $cardnumber; ?>',
           act_token: '<?php echo $activationToken; ?>',
           password: password
        },

........

答案 1 :(得分:0)

您应该使用echo代替return,因为当您在没有功能的情况下工作时,您应该使用echo

所以代码将是

 echo true; // or you can write  echo $success = true;
 exit(); // exit is use to stop further processing of code.