我在signup.php中具有以下HTML表单:
<form id="signup" action="" method="POST" autocomplete="off" autocomplete="false">
<div class="signup_row action">
<input type="text" placeholder="What's your Name?" name="name" id="name" class="signup" autocomplete="new-password" autocomplete="off" autocomplete="false" required />
<input type="text" placeholder="Got an Email?" name="email" id="email" class="signup" autocomplete="new-password" autocomplete="off" autocomplete="false" required />
<div class="g-recaptcha" style="margin-top:30px;" data-sitekey="6LeCkZkUAAAAAOeokX86JWQxuS6E7jWHEC61tS9T"></div>
<input type="submit" class="signup_bt" name="submit" id="submt" value="Create My Account">
</div>
</form>
我正在尝试使用ajax提交表单,而无需刷新页面:
<!-- include files -->
<?php include 'assets/config.php';?>
<?php if(isset($_SESSION["CUSTOMER_ID"])){
header('Location: myaccount.php'); } ?>
<script>
$(function () {
$('form').on('submit', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: 'do_signup_check.php',
data:{"name":name,"email":email},
success: function () {
if(result == 0){
$('.signup_side').fadeOut(500).promise().done(function() {
$('.signup_side').load('do_signup.php',function(){}).hide().fadeIn(500);
});
}else{
$('.signup_side').fadeOut(500).promise().done(function() {
$('.signup_side').load('assets/login.php',function(){}).hide().fadeIn(500);
}
});
});
});
</script>
我将表单发布到do_signup_check.php并运行查询以查看用户是否已经注册。回声1表示肯定结果,回声0表示否定结果:
Do_Signup_Check.php:
<?php
session_start();
require 'assets/connect.php';
$myName=$_POST["name"];
$myEmail=$_POST["email"];
$check = mysqli_query($conn, "SELECT * FROM user_verification WHERE email='".$myEmail."'");
if (!$check) {
die('Error: ' . mysqli_error($conn)); }
if(mysqli_num_rows($check) > 0){
echo '1';
}else{
echo '0';
}
?>
如果结果为0,那么ajax应该加载我的页面do_signup.php。 但是可惜的是,这还没有实现。它可以正常工作,然后我关闭计算机,然后又重新回到计算机上,现在它将无法正常工作。
请有人能告诉我我哪里出问题了吗?
答案 0 :(得分:1)
if(result == 0){
此处结果未使用成功函数:
您必须在此处传递结果变量:
success: function () {
为:
success: function (result) {
现在,您可以使用条件if(result == 0){
第二,我建议您在ajax请求中传递dataType: 'html'
。
编辑:
您在代码中使用<?php if(isset($_SESSION["CUSTOMER_ID"])){
行,如果您在代码中未使用session_start()
,则此检查将不起作用。
对于这一行data:{"name":name,"email":email},
,我没有在代码中看到name
和email
,在这里定义了要在ajax参数中使用的这两个变量。