JavaScriptはフォームデータの非同期取得を実装します

JavaScriptはフォームデータの非同期取得を実装します

この記事では、フォームデータの非同期取得を実現するためのJavaScriptの具体的なコードを例として紹介します。具体的な内容は以下のとおりです。

前回の記事では、JavaScript を使用してフォームでデータを非同期に送信する方法について説明しました。今日は、JavaScript を使用してフォームでデータを非同期に取得する方法について説明します。さっそく読み進めていきましょう。

効果図は以下のとおりです。

下の図に示すように、「データを取得」をクリックしてデータを取得します。

HTML部分は次のとおりです。

 <div class="コンテナ">
       <form class="form-horizo​​ntal" onsubmit="return false;">
           <div class="フォームグループ">
               <label class="control-label col-md-3">名前:</label>
               <div class="col-md-4">
                   <input type="type" name="txtname" value=" " class="form-control" id="txtName"/>
               </div>
           </div>
           <div class="フォームグループ">
               <label class="control-label col-md-3">性別:</label>
               <div class="col-md-4">
                   <select class="form-control" name="cboSex" id="cboSex">
                       <option>--選択してください</option>
                       <option>男性</option>
                       <option>女性</option>
                   </選択>
               </div>
           </div>
           <div class="フォームグループ">
               <label class="control-label col-md-3">住所:</label>
               <div class="col-md-4">
                   <textarea class="form-control" name="txtAddress" id="txtAddress"></textarea>
               </div>
           </div>
           <div class="フォームグループ">
               <button class="btn btn-primary col-md-offset-4" onclick="getVal()">フォームの値を取得します</button>
               <button class="btn btn-primary" onclick="postgetData()">データを送信</button>
               <button class="btn btn-success" onclick="getData()">データを取得</button>
           </div>
       </フォーム>
</div>

JavaScript 部分は次のとおりです。

 関数 getData() {
            var xhr;
            if (window.XMLHttpRequest) {
                xhr = 新しい XMLHttpRequest();
            } それ以外 {
                xhr = ActiveXObject("microsoft.XMLHTTP");
            }
            xhr.open("post", "/JQuery/getInformation", true);
            xhr.send();
            xhr.onreadystatechange = 関数 () {
                xhr.status == 200 && xhr.readyState == 4 の場合 {
                    var txt = xhr.responseText; //xhr の戻り値を取得します。 var obj = JSON.parse(txt); //文字列を js オブジェクトに解析します。 document.getElementById("txtName").value = obj.name;
                    document.getElementById("cboSex").value = obj.sex;
                    document.getElementById("txtAddress").value = obj.address;
                }
            }
        }

サーバーにリクエストを送信する

サーバーにリクエストを送信するには、XMLHttpRequest オブジェクトの open() メソッドと send() メソッドを使用します。
open(method,url,async) は、リクエストのタイプ、URL、およびリクエストを非同期で処理するかどうかを指定します。

1. 同期と非同期とは何ですか?

同期とは、プロセスがリクエストを実行するときに、リクエストが情報を返すのに時間がかかる場合、プロセスは返された情報を受信するまで待機してから実行を続行することを意味します。
非同期とは、プロセスが常に待機する必要がなく、他のプロセスの状態に関係なく、次の操作を実行し続けることを意味します。
メッセージが返されると、システムはプロセスにそれを処理するように通知し、実行効率を向上させることができます。

非同期実装:

1. HTMLとCSSを使用してページを実装し、情報を表現する
2. XMLHttpRequestとWebサーバーを使用して非同期にデータを交換する
3. JavaScriptを使用してDOMを操作し、動的な部分更新を実現する

2. XMLHttpRequest オブジェクトとは何ですか?

XMLHttpRequest オブジェクトは、バックグラウンドでサーバーとデータを交換するために使用されます (詳細については、w3c を参照してください)
XMLHttpRequestオブジェクトを作成します。すべての最新ブラウザ(IE7+、Firefox、Chrome、Safari、Opera)には、
XMLHttpRequest オブジェクト。
XMLHttpRequest オブジェクトを作成するための構文は次のとおりです。

var xhr = 新しい XMLHttpRequest();

Internet Explorer の古いバージョン (IE5 および IE6) では、ActiveXObject オブジェクトが使用されます。

var xhr = 新しい ActiveXObject("Microsoft.XMLHTTP");

IE5 や IE6 を含むすべての最新ブラウザで動作させるには、ブラウザが XMLHttpRequest オブジェクトをサポートしているかどうかを確認してください。サポートされている場合は、XMLHttpRequest オブジェクトが作成されます。サポートされていない場合は、ActiveXObject を作成します。

var xhr;
     if (window.XMLHttpRequest) {
                  // IE7+、Firefox、Chrome、Opera、Safari 用のコード
                    xhr = 新しい XMLHttpRequest();
                } それ以外 {
                    // IE6、IE5 用のコード
                    xhr = 新しい ActiveXObject("Microsoft.XMLHTTP");
                }

3. サーバーにリクエストを送信する

サーバーにリクエストを送信するには、XMLHttpRequest オブジェクトの open() メソッドと send() メソッドを使用します。
open(method,url,async) は、リクエストのタイプ、URL、およびリクエストを非同期で処理するかどうかを指定します。

コントローラーメソッドは次のとおりです。

パブリックアクション結果 getInformation()
        {
            string str = "{\"name\":\"三三\",\"sex\":\"男\",\"address\":\"南城区\"}";
            Content(str)を返します。
        }

要約する

本日は以上がお話の内容です。この記事では、フォームデータの非同期取得の使い方について簡単に紹介します。

以下もご興味があるかもしれません:
  • JavaScriptはフォームデータの非同期送信を実装します
  • jquery.form.js 非同期フォーム送信の詳細な説明
  • Extjs フォーム入力ボックス非同期検証プラグイン実装方法
  • 純粋なJavaScript Ajaxを使用してPHPで非同期フォーム送信を実装する簡単な例
  • JavaScriptは非同期検証フォームを同期フォームに書き換えます
  • Javascript非同期フォーム送信、画像アップロード、非同期シミュレーションAjaxテクノロジーと互換性あり

<<:  Tomcat のセッションと Cookie の詳細な説明

>>:  CentOS 7 に Percona Server+MySQL をインストールする

推薦する

WeChatアプレットがシンプルな計算機機能を実装

WeChatアプレット:シンプルな計算機、参考までに、具体的な内容は次のとおりです。ミニプログラムに...

Centos7でglibcをアップグレードするとシステム異常(起動できない)になる場合の解決方法

目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...

CSS 要約ノート: 変換、遷移、アニメーションの例

1.移行遷移プロパティの使用法: transition :transition-property t...

Apacheドメイン名設定の落とし穴の詳細な説明

私はApacheを使ったことがありません。仕事を始めてからはずっとnginxを使っていました(運用保...

Dockerはコンテナに入るためにnsenterツールを使用する

Dockerコンテナを使用する場合は、nsenterツールを使用する方が便利です。システムにない場合...

VMware vCenter 6.7 のインストール プロセス (グラフィック チュートリアル)

背景当初は VMware の公式 Web サイトから 6.7 Vcenter をダウンロードしたかっ...

Vue3ナビゲーションバーコンポーネントのカプセル化実装方法

参考までに、Vue3でナビゲーションバーコンポーネントをカプセル化し、スクロールバーのスクロールに合...

W3C チュートリアル (5): W3C XML アクティビティ

XML は、データを記述、保存、送信、交換するために設計されています。 XML 1.0 は XML ...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

DockerはRedisを起動し、パスワードを設定します

RedisはRedisバージョン5のapline(Alps)イメージを使用します。これは小さくて高速...

JS の 3 つの主要な問題、非同期性とシングルスレッドについて簡単に説明します。

目次シングルスレッド非同期シングルスレッドしかし、開発中にネットワーク リクエストやスケジュールされ...

MySQL データベースを最適化する 8 つの方法の詳細な説明 (必読の定番)

導入:インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質に...

jsは多次元配列を1次元配列に変換し、それを並べ替えます

目次まず多次元配列の平坦化についてお話しましょう方法 1: flat()方法 2: 空の文字列を連結...

Linuxの簡単な分析でファイアウォールの状態と外部に開いているポートの状態を確認する

1. ファイアウォールの状態を確認するファイアウォールのステータスを確認する systemctl s...

CSSレイアウトにおけるフローティング問題に対する4つの解決策の詳細な説明

1. 原因:サブボックスをフロートに設定した後の効果: 青いボックスをフロートに設定すると、標準のド...