Php 使用Ajax/Jquery提交表单并检查结果?
我想使用ajax提交一个表单,进入我的页面“do_signup_check.php” 在那里,它将根据数据库检查用户输入的电子邮件地址,以查看是否存在匹配项 如果存在匹配项,我希望我的ajax表单将用户重定向到login.php页面 如果没有匹配项,我希望它加载我的页面“do_signup.php” 出于某种原因,代码似乎什么也没做。有人能告诉我哪里出了问题吗 我的Ajax表单:Php 使用Ajax/Jquery提交表单并检查结果?,php,jquery,ajax,Php,Jquery,Ajax,我想使用ajax提交一个表单,进入我的页面“do_signup_check.php” 在那里,它将根据数据库检查用户输入的电子邮件地址,以查看是否存在匹配项 如果存在匹配项,我希望我的ajax表单将用户重定向到login.php页面 如果没有匹配项,我希望它加载我的页面“do_signup.php” 出于某种原因,代码似乎什么也没做。有人能告诉我哪里出了问题吗 我的Ajax表单: <html lang="en"> <head> <script src="http
<html lang="en">
<head>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit"
async defer>
</script>
<?php include 'assets/config.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('login.php',function(){}).hide().fadeIn(500);
}
});
});
});
</script>
</head>
<body>
<div class="sign_up_contain">
<div class="container">
<div class="signup_side">
<h3>Get Onboard.</h3>
<h6>Join the directory.</h6>
<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>
</div>
</div>
</div>
</body>
</html>
$(函数(){
$('form')。关于('submit',函数(e){
e、 预防默认值();
$.ajax({
键入:“post”,
url:“do_signup_check.php”,
数据:{“name”:name,“email”:email},
成功:函数(){
如果(结果==0){
$('.signup_-side').fadeOut(500.promise().done(函数()){
$('.signup_side').load('do_signup.php',function(){}.hide().fadeIn(500);
});
}否则{
$('.signup_-side').fadeOut(500.promise().done(函数()){
$('.signup_-side').load('login.php',function(){}.hide().fadeIn(500);
}
});
});
});
上车。
加入目录。
我的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';
}
?>
<?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 json_encode(array('result'=>'1'));
exit;
}else{
echo json_encode(array('result'=>'0'));
exit;
}
?>
请尝试此代码
$.ajax({
type: 'post',
url: 'do_signup_check.php',
data:{"name":name,"email":email},
success: function (result) {
if(result == 0){
window.location.href = 'do_signup.php';
}else{
window.location.href = 'login.php';
}
});
我的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';
}
?>
<?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 json_encode(array('result'=>'1'));
exit;
}else{
echo json_encode(array('result'=>'0'));
exit;
}
?>
我希望这对您有用。在Ajax获得成功并完成所有必要的逻辑(淡出等)后,只需将用户重新定位到login.php:
window.location.href = 'path/to/login.php';
否则,在error函数中(在success函数之后执行),执行下一步操作:
window.location.href = 'path/to/do_signup.php';
Upd:
如果您想从另一个文件中获得一些代码,可以使用jQuery方法load
$('#some-selector').load('path/to/course/login.php');
这是使用“load”的一个非常基本的示例,您可以通过谷歌来了解更多信息。尝试使用输入id“submt”来触发表单:
$(“#submt”)。单击(函数(){
e、 预防默认值();
//你的逻辑
您的页面中没有包含jquery,该函数也缺少右括号
在顶部包含jquery
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
用以下代码替换函数:-
<script>
$(function () {
$('form').on('submit', function (e) {alert(123);
e.preventDefault();
$.ajax({
type: 'post',
url: 'receive-callback.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('login.php',function(){}).hide().fadeIn(500);
});
}
}
});
});
});
</script>
$(函数(){
$('form')。在('submit',函数(e){alert(123);
e、 预防默认值();
$.ajax({
键入:“post”,
url:'receive callback.php',
数据:{“name”:name,“email”:email},
成功:函数(){
如果(结果==0){
$('.signup_-side').fadeOut(500.promise().done(函数()){
$('.signup_side').load('do_signup.php',function(){}.hide().fadeIn(500);
});
}否则{
$('.signup_-side').fadeOut(500.promise().done(函数()){
$('.signup_-side').load('login.php',function(){}.hide().fadeIn(500);
});
}
}
});
});
});
也许您可以包含一个关于OPs问题的高级描述,以及您的示例如何解决它?您测试了代码吗?在JS部分,您需要检查响应,如您的案例中的result.result==0
。我不希望简单的重定向。loging.php页面需要在div中通过ajax加载。使用login and signup model instead、 如果响应成功,则通过JQuery$('#loginModel').modal('show')显示登录模型;如果响应失败,则通过JQuery$('#suignupModel').modal('show')显示注册模型;