我想使用ajax提交表单以转到我的页面“ do_signup_check.php”。
它将在数据库中检查用户输入的电子邮件地址,以查看是否存在匹配项。
如果匹配,我希望我的Ajax表单将用户重定向到login.php页面。
如果没有匹配项,我希望它加载我的页面'do_signup.php'
由于某种原因,代码似乎什么也没做。请有人能告诉我我要去哪里哪里吗?
我的Ajax表单:
<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>
我的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 :(得分:0)
在Ajax中获得成功并执行所有必要的逻辑(fadeOut等)后,只需将用户重新定位到login.php:
window.location.href = 'path/to/login.php';
否则,在错误功能(成功功能之后)执行下一个操作:
window.location.href = 'path/to/do_signup.php';
更新: 如果您想从另一个文件中获取一些代码,则可以使用jQuery方法 load 。
$('#some-selector').load('path/to/course/login.php');
这是一个使用“加载”的非常基本的示例,请谷歌搜索它以进行更多研究。
答案 1 :(得分:0)
尝试使用输入id'submt'触发表单,如下所示:
$("#submt").click(function(){
e.preventDefault();
//your logic
答案 2 :(得分:0)
您尚未在页面中包含jquery,该函数还缺少右括号。
在顶部添加jQuery
<select>
<option *ngFor="let item of subjects | keyvalue" (click)="getSub(item.key)">{{item.value}}</option>
</select>
用以下代码替换您的函数:-
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 3 :(得分:-1)
请尝试使用此代码。
$.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 json_encode(array('result'=>'1'));
exit;
}else{
echo json_encode(array('result'=>'0'));
exit;
}
?>
我希望这对您有用。