繁体   English   中英

AJAX发布没有任何回应

[英]AJAX post not getting any response

因此,当我单击注册页面(register.php)上的按钮时,jQuery应该向regit.php发出AJAX发布请求。 在jQuery中,我添加了一条调试消息(它确实注册了按钮单击),但是之后没有任何反应。 没有数据返回到结果div,什么也没有。

我试图找到错误,但无法发现它。

Javascript:

$(function(){

$("form").submit(function() {
    event.preventDefault();
    console.log("clicked button");

    var username = $('#username').val();
    var password = $('#password').val();
    var passwordconfirm = $('#password_confirm').val();
    var email = $('#email').val();
    var turvakysimus = $('#turvakysimus').val();
    var turvavastus = $('#turvavastus').val();

    $.post("regit.php",
    {
        username: username,
        password: password,
        passwordconfirm: passwordconfirm,
        email: email,
        turvakysimus: turvakysimus,
        turvavastus: turvavastus
    },

    function(data)
    {
        if(data.tulemus == 'olemas') {
             $("#resultDiv").hide().html('<div class="alert alert-success" style="margin-top:25px;"> <strong>Success!</strong></div>').fadeIn(1000);
        } else if (data.tulemus == 'loodud'){
            $("#resultDiv").hide().html('<div class="alert alert-danger" style="margin-top:25px;"> <strong>Error!</strong></div>').fadeIn(1000);
        } 
    }, "json");
});
});

将请求发送到的regit.php:

<?php 

if(isset($_POST['username'])){

include_once 'db_connect.php';

$username = $_POST['username'];
$password = $_POST['password'];
$passwordconfirm = $_POST['passwordconfirm'];

$email = $_POST['email'];
$turvakysimus = $_POST['turvakysimus'];
$turvavastus = $_POST['turvavastus'];

$sql = "SELECT username FROM kasutajad WHERE username = :username";
$query = $pdo->prepare($sql);

$query->bindValue(':username', $username);
$query->execute();

$query->fetch(PDO::FETCH_ASSOC);

if($query->rowCount()){
    echo json_encode(array("tulemus"=>"olemas"));
} else {

  $passwordHash = password_hash($password, PASSWORD_DEFAULT);

  $sql = "INSERT INTO users (username, password, email, turvakysimus, turvavastus) VALUES (:username, :password, :email, :turvakysimus, :turvavastus)";
  $query = $pdo->prepare($sql);

  $query->bindValue(':username', $username);
  $query->bindValue(':password', $passwordHash);
  $query->bindValue(':email', $email);
  $query->bindValue(':turvakysimus', $turvakysimus);
  $query->bindValue(':turvavastus', $turvavastus);

  $result = $query->execute();

  if($result){
       echo json_encode(array("tulemus"=>"loodud"));
  }
}
}
?>

任何帮助将不胜感激..我只是希望它不是某个地方的愚蠢错字。

看一下jQuery.post()并尝试添加fail函数,以便在出现任何问题时将其处理:

$.post("regit.php",
{
    username: username,
    password: password,
    passwordconfirm: passwordconfirm,
    email: email,
    turvakysimus: turvakysimus,
    turvavastus: turvavastus
}, function(result) {
    alert( "success" );
    console.log(result);
}).fail(function() {
    alert( "error" );
});

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM