So when I click on a button on my register page (register.php), the jQuery should make an AJAX post request to regit.php. In the jQuery I added a debug message (it indeed registers the button click) but nothing happens after it. No data is returned to the result div, nothing.
所以当我点击我的注册页面上的一个按钮(register.php)时,jQuery应该向regit.php发出一个AJAX发布请求。在jQuery中我添加了一个调试消息(它确实注册了按钮点击),但之后没有任何反应。没有数据返回结果div,没有。
I have tried finding the mistake but just cant spot it.
我试图找到错误但却无法发现它。
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");
});
});
The regit.php where the request is sent to:
请求发送到的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"));
}
}
}
?>
Any help would be appreciated.. I just hope it isn't a stupid typo somewhere.
任何帮助将不胜感激..我只是希望它不是一个愚蠢的错字。
1 个解决方案
#1
0
Take a look at jQuery.post() and try to add fail
function so it will be handled if there's any problem :
看看jQuery.post()并尝试添加失败函数,以便在出现任何问题时进行处理:
$.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" );
});
Hope this helps.
希望这可以帮助。
#1
0
Take a look at jQuery.post() and try to add fail
function so it will be handled if there's any problem :
看看jQuery.post()并尝试添加失败函数,以便在出现任何问题时进行处理:
$.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" );
});
Hope this helps.
希望这可以帮助。