ホームページ  >  記事  >  バックエンド開発  >  Formフォーム送信のAjax実装と注意事項

Formフォーム送信のAjax実装と注意事項

小云云
小云云オリジナル
2017-12-19 13:28:511434ブラウズ

フォームフォームを使用する場合、送信をクリックして送信イベントがトリガーされると、通常、ページ間のジャンプなどの動作の制御はバックエンドで行われますが、ある時点で、ページをジャンプさせたくない場合、またはフロントエンドに制御を置き、js を使用してページジャンプやデータ変更を操作したい場合があります。この記事では、Ajax メソッドを使用した Form フォーム送信の実装方法と注意点を中心に紹介しますので、困っている方は参考にしていただければ幸いです。

一般的にこの種の非同期操作はajaxメソッドを考えることになるので、機能実装後、フォーム送信とその後の非同期操作をajaxメソッドで実装するためにこの記事をまとめました。

一般的なフォーム送信メソッド

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>login test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="login test">  
</head>
<body>
<p id="form-p">
  <form id="form1" action="/users/login" method="post">
    <p>用户名:<input name="userName" type="text" id="txtUserName" tabindex="1" size="15" value=""/></p>
    <p>密 码:<input name="password" type="password" id="TextBox2" tabindex="2" size="16" value=""/></p>
    <p><input type="submit" value="登录">&nbsp<input type="reset" value="重置"></p>
  </form>
</p>
</body>
</html>

ログイン ボタンをクリックすると、フォーム送信イベントがトリガーされ、データがページ ジャンプとデータを制御するバックエンドに送信されます。

ajax はフォーム送信メソッドを実装します

変更後のコードは次のようになります:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>login test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="ajax方式">
  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  <script type="text/javascript">
    function login() {
      $.ajax({
      //几个参数需要注意一下
        type: "POST",//方法类型
        dataType: "json",//服务端接收的数据类型
        url: "/users/login" ,//url
        data: $('#form1').serialize(),
        success: function (result) {
          console.log(result);//打印服务端返回的数据(调试用)
          if (result.resultCode == 200) {
            alert("SUCCESS");
          }
          ;
        },
        error : function() {
          alert("异常!");
        }
      });
    }
  </script>
</head>
<body>
<p id="form-p">
  <form id="form1" onsubmit="return false" action="##" method="post">
    <p>用户名:<input name="userName" type="text" id="txtUserName" tabindex="1" size="15" value=""/></p>
    <p>密 码:<input name="password" type="password" id="TextBox2" tabindex="2" size="16" value=""/></p>
    <p><input type="button" value="登录" onclick="login()"> <input type="reset" value="重置"></p>
  </form>
</p>
</body>
</html>

Notes

  • 一般的な方法では、クリックされたログイン ボタンのタイプは "submit" タイプです。一般的な方法では、フォームのアクションは空ではありません

  • ajax メソッドで注意する必要があるのは、$.ajax メソッドのパラメーターである dataType と data です。

  • レベルは理解して変更できるので、今回もBaiduを使用しました。 $.ajax メソッドのコードで設定されている dataType パラメーターの値が「json」ではなく「html」になっているため、最初にデバッグしたときにエラーが報告され続けました。最終的には「json」に変更しました。成功するので、ここで具体的に説明します。私のように間違った方向に行かないように注意してください。上記のコードと同様に、データをシリアル化して送信するだけです。フォーム。

  • 関連する推奨事項:

更新せずにファイルをアップロードする機能を実装するためのajaxのサンプル詳細説明

PHPでjQuery+Ajaxを使用してページングクエリ機能を実装する

AJAXを使用して非同期の簡単な登録ページを実装するサンプルコードをリクエストしてください

以上がFormフォーム送信のAjax実装と注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。