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. <script type="text/javascript">jqueryスクリプトの下に移動します。

実例とソース_

于 2013-01-09T22:00:25.233 に答える