0

我正在更改我网站上的登录表单以使用 ajax。它只是基本上检查用户名和密码是否正确。但它根本不起作用它刷新并且没有任何反应,任何人都可以看到我在代码中出错的地方吗?

<html>
  <body>
    <div id="content">
      <h1>Login Form</h1>
        <form id="form1" name="form1" action="testform.php" method="post">
           <p><label for="username">Username: </label>
           <input type="text" name="username" id="username" /></p>
           <p><label for="password">Password: </label>
           <input type="password" name="password" id="password" /></p>
           <p><input type="submit" id="login" name="login" /></p>
        </form>
  <div id="message"></div>
  </div>
</body>
</html>

<script type="text/javascript">
<script type="text/javascript"
src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
$(document).ready(function() {

   $("#login").click(function() {

   var action = $("#form1").attr('action');
   var form_data = {
       username: $("#username").val(),
       password: $("#password").val(),
       is_ajax:
   };

   $.ajax({
           type: "POST",
           url: action,
           data: form_data,
           success: function(response)
           {
              if(response == 'success')
                  $("#form1").slideUp('slow', function() {
                     $("#message").html("<p class='success'>logged in!</p>");
                  });
         else
           $( "#message").html("<p class='error'>Invalid username and/orpassword</p>");
           }
      });
      return false;
   });
});
</script>

<?php
   $is_ajax = $_REQUEST['is_ajax'];

  if(isset($is_ajax) && $is_ajax)
 {
     $username = $_REQUEST['username'];
     $password = $_REQUEST['password'];

    if($username == 'to_difine' && $password == 'to_difine')
  {
     echo "success";
  }
}
?>
4

1 回答 1

1

问题:

  1. Ajax 请求正在返回整个 html 页面。
  2. 标签有问题(无效的 html)。

更正:

  1. 将 PHP 代码移动到文件的顶部。
  2. 添加exit;到 php 里面if is_ajax,这样 html 的其余部分就不会返回了。
  3. 移到jquery<script type="text/javascript">脚本下方。

工作示例来源

于 2013-01-09T22:00:25.233 回答