使用ajax调用调用php验证文件

使用ajax调用调用php验证文件,php,jquery,ajax,Php,Jquery,Ajax,我正在尝试使用Ajax提交表单,问题是根本没有调用我创建的验证文件(我在PHP验证文件中添加了一点js警报来检查)。我搜索了互联网,尝试了很多解决方案,但都没有奏效。我的代码中是否有错误? 这是我的HTML: <form method="post" id="signup"> <div class="form-group"> <input type="fname" name="fname" id="fname" value="" class="form-c

我正在尝试使用Ajax提交表单,问题是根本没有调用我创建的验证文件(我在PHP验证文件中添加了一点js警报来检查)。我搜索了互联网,尝试了很多解决方案,但都没有奏效。我的代码中是否有错误? 这是我的HTML:

<form method="post" id="signup">
  <div class="form-group">
    <input type="fname" name="fname" id="fname" value="" class="form-control" placeholder="Your First name" />
  </div>
  <div class="form-group">
    <input type="lname" name="lname" id="lname" value="" class="form-control" placeholder="Your Last name" />
  </div>
  <div class="form-group">
    <input type="email" name="email" id="email" value="" class="form-control" placeholder="Your Email" />
  </div>
  <div class="form-group">
    <input type="password" name="password" id="password" value="" class="form-control"  placeholder="Your Password" />
  </div>
  <div class="form-group submit-btn">
     <input id="signupsumbit" type="submit" name="submit" value="Sign Up" class="btn btn-success btn-lg"/>
  </div>
</form>
下面是我的一段PHP代码:
include("connection.php");

echo "<script>alert(2)</script>";

if (isset($_GET['logout']) and $_GET['logout']==1 and isset($_COOKIE[id]))
{
    setcookie("email", '', time()-60*60*24);
    setcookie("password", '', time()-60*60*24);
    setcookie("id", '', time()-60*60*24);
    $message = "You have been logged out! Come back soon!";
}

if(mysqli_connect_error()) // if failed to connect to database
{
    die("Could not connect to database"); //stop the whole script from runnning
}

if (isset($_POST['submit']) and $_POST['submit'] == 'Sign Up')
{
    echo '<script>console.log(1)</script>'; //
    $error = '';
    $success = '';

    // email validation
    $email = $_POST['email'];

    if (empty($_POST['email']))
    {
        $error .="<br />Please enter your email";
    }
    else
    {
        if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        {
            $error .="<br />Please enter a valid email address";  
        }
    }
    .
    .
    .
    .
?>
include(“connection.php”);
回声“警报(2)”;
如果(isset($\u GET['logout'])和$\u GET['logout']==1和isset($\u COOKIE[id]))
{
setcookie(“电子邮件”,“时间()-60*60*24”);
setcookie(“密码”,“时间()-60*60*24”);
setcookie(“id”,“”,time()-60*60*24);
$message=“您已注销!请尽快回来!”;
}
if(mysqli\u connect\u error())//if无法连接到数据库
{
die(“无法连接到数据库”);//停止运行整个脚本
}
如果(isset($_POST['submit'])和$_POST['submit']=='Sign Up')
{
回显“控制台日志(1)”//
$error='';
$success='';
//电子邮件验证
$email=$_POST['email'];
如果(空($_POST['email']))
{
$error.=“
请输入您的电子邮件”; } 其他的 { 如果(!filter_var($email,filter_VALIDATE_email)) { $error.=“
请输入有效的电子邮件地址”; } } . . . . ?>
当然,我验证的PHP文件名为
login.PHP
。 您可能会注意到,我在PHP代码中添加了两个警报,我向2发出警报以确保文件被调用,向1发出警报以确保表单已发布。可能的情况是,当我以正常方式提交表单(没有AJAX)时,两个警报都起作用,但当我使用AJAX提交表单时,没有一个警报

我的控制台显示:
如果您有任何帮助,我们将不胜感激。谢谢。

在测试您的脚本时,我发现提交按钮没有发送到您的login.php脚本。如果您使用e.preventDefault()然后触发提交,javascript正在提交表单,但没有提交按钮。要解决此问题,请创建一个名为submit和value Sign Up的隐藏字段,并从提交按钮中删除name属性(不需要该属性),它应该可以正常工作

<form method="post" id="signup">
    <input type="hidden" name="submit" value="Sign Up"> <!-- note this hidden field -->
    <div class="form-group">
        <input type="fname" name="fname" id="fname" value="" class="form-control" placeholder="Your First name" />
    </div>
    <div class="form-group">
        <input type="lname" name="lname" id="lname" value="" class="form-control" placeholder="Your Last name" />
    </div>
    <div class="form-group">
        <input type="email" name="email" id="email" value="" class="form-control" placeholder="Your Email" />
    </div>
    <div class="form-group">
        <input type="password" name="password" id="password" value="" class="form-control"  placeholder="Your Password" />
    </div>
    <div class="form-group submit-btn">
        <input id="signupsumbit" type="submit" value="Sign Up" class="btn btn-success btn-lg"/><!-- note the removed name attribute -->
    </div>
</form>


向我们展示您的php中读取请求的部分您如何知道它没有被调用?您是否检查了
成功处理程序中的
数据
包含了什么内容?如果是,请将其添加到您的问题中。您是否确保您的php文件返回了一些内容?例如
echo()
例如?要了解可能出现的任何错误,可以使用ajax错误函数,使用此链接帮助您:请更改您的Javascript(jQuery)函数:。打开浏览器控制台并告诉我们它返回了什么。您是否可以在网络控制台中处理有关记录成功数据或检查ajax请求的评论。无论您在响应中返回什么,如果您从未将数据放在页面上,响应中的警报将永远不会发出哦,发生了。
<form method="post" id="signup">
    <input type="hidden" name="submit" value="Sign Up"> <!-- note this hidden field -->
    <div class="form-group">
        <input type="fname" name="fname" id="fname" value="" class="form-control" placeholder="Your First name" />
    </div>
    <div class="form-group">
        <input type="lname" name="lname" id="lname" value="" class="form-control" placeholder="Your Last name" />
    </div>
    <div class="form-group">
        <input type="email" name="email" id="email" value="" class="form-control" placeholder="Your Email" />
    </div>
    <div class="form-group">
        <input type="password" name="password" id="password" value="" class="form-control"  placeholder="Your Password" />
    </div>
    <div class="form-group submit-btn">
        <input id="signupsumbit" type="submit" value="Sign Up" class="btn btn-success btn-lg"/><!-- note the removed name attribute -->
    </div>
</form>