2015-11-02 66 views
0

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

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

的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")); 
    } 
} 
} 
?> 

任何帮助,将不胜感激。我只希望这不是一个愚蠢的错字的地方。

+0

1.在(网络)控制台中寻找 2.将失败/错误添加到jQuery文章。 3.添加PHP错误处理,使用GET并将URL加载到位置以查看是否存在错误。 – mplungjan

+0

您是否在浏览器的控制台中观看了请求/响应? –

回答

0

看看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"); 
}); 

希望这有助于。

+0

我使用了这段代码,它让我知道'成功'; – fidtal

+0

好的尝试添加'result'参数和'console.log(result);',查看我更新后的代码答案,并告诉我们您在浏览器开发人员控制台中收到的内容。 –

+0

问题在于查询未被执行。 – fidtal