Php 使用preventDefault后,我如何;“重新允许”;数据发送到数据库后,是否使用“提交”按钮加载页面?
也许我完全错了,但我的目标是使用jQuery、AJAX和PHP来验证我的注册表单。我目前已将其设置为:Php 使用preventDefault后,我如何;“重新允许”;数据发送到数据库后,是否使用“提交”按钮加载页面?,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,也许我完全错了,但我的目标是使用jQuery、AJAX和PHP来验证我的注册表单。我目前已将其设置为: 用户在表单中输入数据 如果任何数据不正确,将使用AJAX在表单下方显示一条错误消息 如果表单正确提交,数据将发送到数据库 几乎所有的事情似乎都很有效,但问题是如果表格填写正确,我会打电话给你 header("Location: ../index.php”); 然后它将我的索引页面加载到注册页面的顶部,因为默认情况下,提交按钮不允许用户进入新页面。这就像我在一个浏览器窗口中有两个网页在另一个上
header("Location: ../index.php”);
然后它将我的索引页面加载到注册页面的顶部,因为默认情况下,提交按钮不允许用户进入新页面。这就像我在一个浏览器窗口中有两个网页在另一个上面一样。如果表格填写正确,我是否可以“重新允许”提交按钮正常工作
HTML:
登记帐户
jQuery:
/// <reference path="jquery-3.3.1.min.js" />
$(document).ready(function() {
$("form").submit(function(event) {
event.preventDefault();
var username = $("#register-username").val();
var email = $("#register-email").val();
var password = $("#register-password").val();
var confirmPassword = $("#register-confirm-password").val();
var submit = $("#register-submit").val();
$(".form-message").load("../shared/_registerAccount.php", {
username: username,
email: email,
password: password,
confirmPassword: confirmPassword,
submit: submit
});
});
});
//
$(文档).ready(函数(){
$(“表格”)。提交(功能(事件){
event.preventDefault();
var username=$(“#注册用户名”).val();
var email=$(“#注册电子邮件”).val();
var password=$(“#注册密码”).val();
var confirmPassword=$(“#注册确认密码”).val();
var submit=$(“#注册提交”).val();
$(“.form message”).load(“../shared/_registerAccount.php”{
用户名:用户名,
电邮:电邮,,
密码:密码,
confirmPassword:confirmPassword,
提交:提交
});
});
});
PHP:
当您只想刷新页面时,代码的需求是什么?只需执行window.location.reload()
当您收到响应时我对web开发太陌生了,不知道答案可能简单到不需要代码。
/// <reference path="jquery-3.3.1.min.js" />
$(document).ready(function() {
$("form").submit(function(event) {
event.preventDefault();
var username = $("#register-username").val();
var email = $("#register-email").val();
var password = $("#register-password").val();
var confirmPassword = $("#register-confirm-password").val();
var submit = $("#register-submit").val();
$(".form-message").load("../shared/_registerAccount.php", {
username: username,
email: email,
password: password,
confirmPassword: confirmPassword,
submit: submit
});
});
});
<?php
if (isset($_POST['submit']))
{
include_once "_databaseHandler.php";
$username = mysqli_real_escape_string($connection, $_POST['username']);
$email = mysqli_real_escape_string($connection, $_POST['email']);
$password = mysqli_real_escape_string($connection, $_POST['password']);
$confirmPassword = mysqli_real_escape_string($connection,
$_POST['confirmPassword']);
$errorEmpty = false;
//Check for empty fields
if (empty($username) || empty($email) || empty($password) ||
empty($confirmPassword))
{
echo "<span class='form-error'>Please fill in all fields</span>";
$errorEmpty = true;
}
else
{
$sqlUsername = "SELECT * FROM userinfo WHERE userName = '$username'";
$resultUsername = mysqli_query($connection, $sqlUsername);
$resultCheckUsername = mysqli_num_rows($resultUsername);
$sqlEmail = "SELECT * FROM userinfo WHERE userEmail = '$email'";
$resultEmail = mysqli_query($connection, $sqlEmail);
$resultCheckEmail = mysqli_num_rows($resultEmail);
//Check if username is taken
if ($resultCheckUsername > 0)
{
echo "<span class='form-error'>This username is already
taken</span>";
$errorEmpty = true;
}
//Check if username has invalid characters
else if (preg_match("/^[0-9a-zA-Z]$/", $username))
{
echo "<span class='form-error'>This username contains invalid
characters</span>";
$errorEmpty = true;
}
//Check if email is valid
else if ($resultCheckEmail > 0)
{
echo "<span class='form-error'>This email is already in
use</span>";
$errorEmpty = true;
}
//Check if email is already in use
else if (!filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "<span class='form-error'>Please enter a valid email
address</span>";
$errorEmpty = true;
}
//Check if passwords match
else if ($_POST['password'] != $_POST['confirmPassword'])
{
echo "<span class='form-error'>Passwords do not match</span>";
$errorEmpty = true;
}
//Insert the user into the database
else
{
$sql = "INSERT INTO userinfo (userName, userEmail, userPassword)
VALUES (?, ?, ?);";
$statement = mysqli_stmt_init($connection);
if (!mysqli_stmt_prepare($statement, $sql))
{
echo "<span>Database error</span>";
header("Location: ../index.php");
exit();
}
else
{
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($statement, "sss", $username, $email,
$hashedPassword);
mysqli_stmt_execute($statement);
header("Location: ../index.php?signup=success");
exit();
}
}
}
}
else
{
header('Location: ../index.php');
exit();
}
?>
<script>
$("#username, #email, #password, #confirmPassword").removeClass(".input-
error").removeClass(".input-error");
var errorEmpty = "<?php echo $errorEmpty; ?>";
if (errorEmpty)
{
$("#username, #email, #password, #confirmPassword").addClass(".input-
error");
}
if (!errorEmpty)
{
$("#username, #email, #password, #confirmPassword").val("");
}
</script>