我的PHP代码与设计及其后端流程一起使用。使用Ajax使用当用户输入数据时'createpassword'和'confirmmpassword'不匹配时弹出的警告消息的正确语法是什么。
我尝试使用JavaScript类型的警告框,但只要用户输入密码,它就会刷新表单。我希望它只显示一个警告框,它不会刷新页面。有没有人有任何想法?
这是我的PHP设计:
<?php
$MonthArray = array(
1=>"January",
2=> "February",
3=> "March",
4=> "April",
5=> "May",
6=> "June",
7=> "July",
8=> "August",
9=> "September",
10=> "October",
11=> "November",
12=> "December",
);
?>
<!DOCTYPE html>
<html>
<head>
<title>Sign up</title>
</head>
<body>
<div id="container">
<div id="signup">
<form action="SignupProcess.php" method="POST">
<!-- Complete Name -->
<div class="Name">
<label><span style="font-weight:bold">Name</span></label>
<br>
<input type="text" name="firstname" size="15" placeholder="First" required>
<input type="text" name="lastname" size="15" placeholder="Last" required>
</div>
<br>
<!-- Username -->
<div class="Username">
<label><span style="font-weight:bold">Choose your username</span></label><br>
<input type="text" name="username" size="35" required>
</div>
<br>
<!-- Password -->
<div class="Password">
<label><span style="font-weight:bold">Create a password</span></label><br>
<input type="password" name="createpassword" size="35" required>
<br><br>
<label><span style="font-weight:bold">Confirm your password</span></label><br>
<input type="password" name="confirmpassword" size="35" required>
</div>
<br>
<!-- Birthdate -->
<div class="Birthdate">
<select name="month" required>
<option disabled selected>Month</option>
<?php foreach($MonthArray as $monthkey => $value) { ?>
<option value="<?php echo $monthkey ?>"><?php echo $value ?></option>
<?php }?>
</select>
<input type="text" name="day" placeholder="Day" size="5" required>
<select name="year" required>
<?php
foreach(range(1990, (int)date("Y")) as $year) {
echo "\t<option value='".$year."'>".$year."</option>\n\r";
rsort($year);
}
?>
</select>
</div>
<!-- Buttons -->
<div class="Buttons">
<input type="submit" id="signup" name="signupsubmit">
<input type="reset" id="reset" name="signupreset">
</div>
</form>
</div>
</div>
</body>
</html>
它的PHP过程:
<?php
include("CreateConnection.php");
// Get values from form Signup.php file
$FirstName = mysqli_real_escape_string($connect, $_POST['firstname']);
$LastName = mysqli_real_escape_string($connect, $_POST['lastname']);
$Username = mysqli_real_escape_string($connect, $_POST['username']);
$CreatePassword = mysqli_real_escape_string($connect, $_POST['createpassword']);
$ConfirmPassword = mysqli_real_escape_string($connect, $_POST['confirmpassword']);
$Month = mysqli_real_escape_string($connect, $_POST['month']);
$Day = mysqli_real_escape_string($connect, $_POST['day']);
$Year = mysqli_real_escape_string($connect, $_POST['year']);
// Removes back slashes in input
$FirstName = stripcslashes($FirstName);
$LastName = stripcslashes($LastName);
$Username = stripcslashes($Username);
$CreatePassword = stripcslashes($CreatePassword);
$ConfirmPassword = stripcslashes($ConfirmPassword);
$Month = stripcslashes($Month);
$Day = stripcslashes($Day);
$Year = stripcslashes($Year);
if($CreatePassword != $ConfirmPassword)
{
echo "<script type='text/javascript'>alert('Password does not match please check.');</script> ";
echo "<script>setTimeout(\"location.href = 'Signup.php'\", 0)</script>";
}
else
{
// Query Insert into tablereminders
$query = mysqli_query($connect, "INSERT INTO `tablereminders`(`username`, `password`, `firstname`, `lastname`, `Month`, `Day`, `Year`)
VALUES ('$Username','$ConfirmPassword','$FirstName','$LastName','$Month','$Day','$Year')");
}
// Error connection and query
if(mysqli_query($connect, $query))
{
echo "New record created successfully";
echo "<script>setTimeout(\"location.href = 'LoginReminder.php'\", 500)</script>";
}
?>
这里的代码是我将在没有页面刷新的情况下显示警告框的地方。
if($CreatePassword != $ConfirmPassword)
{
echo "<script type='text/javascript'>alert('Password does not match please check.');</script> ";
echo "<script>setTimeout(\"location.href = 'Signup.php'\", 0)</script>";
}
我想在我的SignupProcess.php中添加一个Ajax请求。可以在外部调用表单函数吗?