我不知道为什么我的成功功能不起作用。我的意思是虽然它将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);
}
答案 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.