AJAX responseText是不可靠的

时间:2017-11-19 22:45:28

标签: php jquery ajax

我正在尝试将表单数据发送到php脚本而不进行重定向。 我遇到的问题是responseText函数似乎无法可靠地工作。

注意:PHP脚本按预期工作。并且正在写入数据库等等。

AJAX代码:

$(document).ready(function(){
    $('#registreer').click(function(){
        $.ajax({
            type: "POST",
            url: "assets/PHP/registreer.php",
            data: $('form').serialize(),
            success: function(jqXHR, textStatus) {alert("Succes" + jqXHR.responseText);},
            error: function(jqXHR, textStatus) {alert("Error" + jqXHR.responseText);}
        })
    });
});

PHP代码:

$conn = mysqli_connect($servername, $username, $password, $dbname);

// Check connection

if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

if ($passwordPost != $passwordRetypePost) {
    echo "Paswoorden zijn niet hetzelfde!";
} else {
if (!($stmt = $conn->prepare("SELECT * FROM `Gebruikers` WHERE `Email` = ?"))) {
    echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
} else {

$stmt->bind_param("s", $emailPost);
$stmt->execute();
$stmt->bind_result($id, $email, $paswoord, $rol);
$stmt->store_result();

if ($stmt->num_rows > 0) {
    echo "Email bestaat al!";
} else {
    $stmt->close();
    $hash = password_hash($passwordPost, PASSWORD_DEFAULT);
    if (!($stmt = $conn->prepare("INSERT INTO `Gebruikers`(`Email`, `Paswoord`) VALUES (?,'$hash')"))) {
        echo "Prepare failed: (" . $conn->errno . ") " . $conn->error;
    }

    $stmt->bind_param("s", $emailPost);
    $stmt->execute();
    echo 'Gelukt!';
}
}
}

$mysqli->close();

因此,出于某种原因,我能得到的唯一回应是:

echo "Email bestaat al!";

所有其他回声似乎都不适用于我的HTML页面。无论我尝试什么。

欢迎任何建议!

1 个答案:

答案 0 :(得分:1)

您收到该消息是因为您正在检查数据库中是否已存在$emailPost且答案是否为真。这就是您收到此消息的原因。

您是否尝试过其他电子邮件地址?

此外,在您的jQuery回调(successerror)中,您将始终收到“成功”的东西,因为在任何情况下,您都不会在PHP端抛出任何错误。 你最好在php中使用的每个'echo'或'die'语句中使用类似throw new Exception('Prepare failed [...] ')之类的内容,除非你可以正确使用{{1 }}