Javascript AJAX帖子没有得到任何回应
因此,当我单击register页面(register.php)上的按钮时,jQuery应该向regit.php发出一个AJAX post请求。在jQuery中,我添加了一条调试消息(它确实注册了按钮单击),但之后什么也没有发生。没有数据返回到结果div,没有数据 我试着找出错误,但就是找不出 Javascript:Javascript AJAX帖子没有得到任何回应,javascript,php,jquery,ajax,pdo,Javascript,Php,Jquery,Ajax,Pdo,因此,当我单击register页面(register.php)上的按钮时,jQuery应该向regit.php发出一个AJAX post请求。在jQuery中,我添加了一条调试消息(它确实注册了按钮单击),但之后什么也没有发生。没有数据返回到结果div,没有数据 我试着找出错误,但就是找不出 Javascript: $(function(){ $("form").submit(function() { event.preventDefault(); console.log("c
$(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");
});
});
$(函数(){
$(“表格”)。提交(函数(){
event.preventDefault();
console.log(“单击按钮”);
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”,
{
用户名:用户名,
密码:密码,
passwordconfirm:passwordconfirm,
电邮:电邮,,
图尔瓦基西莫斯:图尔瓦基西莫斯,
图尔瓦瓦斯托斯:图尔瓦斯托斯
},
功能(数据)
{
如果(data.tulemus=='olemas'){
$(“#resultDiv”).hide().html(“成功!”).fadeIn(1000);
}else if(data.tulemus=='loodudud'){
$(“#resultDiv”).hide().html(“错误!”).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"));
}
}
}
?>
任何帮助都将不胜感激。。我只是希望它不是某个愚蠢的打字错误。看看,尝试添加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" );
});
希望这有帮助。1。查看(网络)控制台2。将失败/错误添加到jQuery帖子。3.添加PHP错误处理,使用GET并将URL加载到该位置以查看是否存在错误。您是否在浏览器控制台中查看了请求/响应?确定尝试添加
result
param和console.log(result)
,查看我更新的代码答案,并告诉我们您在浏览器开发人员控制台中收到了什么。问题在于没有执行查询。因此,问题不在ajax请求中,而是在php代码中,您必须使用echo
s调试代码,并查看该过程是否会成功完成,示例:您可以在第一个regit.php
页面中添加一个echo,并检查是否会在结果中收到此echo的值。我在if($result){中添加了一个else语句,并将其打印出来。我猜查询有问题。为什么要使用此if and else?您在我的答案中测试了基本代码吗?(无条件).