HTML に基づいてページを更新せずにフォーム送信を実装する

HTML に基づいてページを更新せずにフォーム送信を実装する
ページを更新せずにフォーム送信を実装するために Ajax を使用することは、プロジェクトでよく使用されます。少し前に、私は師匠から、主に iframe フレームワークに基づいた、フォームを更新せずに送信する方法をいくつか学びました。今、私はそれを整理してみんなと共有しました。
最初のもの:
(HTML ページ)

HTMLコードコンテンツをクリップボードにコピー
  1. <!DOCTYPE HTML>
  2. <html lang="ja- JP " >
  3. <ヘッド>
  4. <メタ文字セット= "utf-8" >
  5. <title>フォームを更新せずに送信</title>
  6. <スタイル タイプ = "text/css" >
  7. ul{ リストスタイルタイプ:なし;}
  8. </スタイル>
  9. </head>
  10. <本文>
  11. <iframe name= "formsubmit" style= "display:none;" >
  12. </iframe>
  13. <!-- フォーム送信ウィンドウを非表示の ifrmae にポイントし、ifrmae を通じてデータを送信します。 -->
  14. <フォームアクション= "form.php"メソッド= "POST"名前= "formphp"ターゲット= "formsubmit" >
  15. <ul>
  16. <li>
  17. <label for = "uname" >ユーザー名: </label>
  18. <入力タイプ= "テキスト"名前= "uname" ID= "uname" />
  19. </li>
  20. <li>
  21. <label for = "pwd" >パスワード:</label>
  22. <入力タイプ= "パスワード"名前= "pwd" id= "pwd" />
  23. </li>
  24. <li>
  25. <input type= "submit" value= "ログイン" />
  26. </li>
  27. </ul>
  28. </フォーム>
  29. </本文>
  30. </html>
  31.   
  32. (PHPページ: form.php)
  33.   
  34. <?php
  35. // 空でない検証  
  36. もし($_POST[ 'uname' ])が空なら || $_POST[ 'pwd' ])が空なら
  37. {
  38. echo '<script type="text/javascript">alert("ユーザー名またはパスワードが空です!");</script>' ;
  39. 出口;
  40. }
  41. //パスワードを確認する  
  42. ($_POST[ 'uname' ] != 'jack' || $_POST[ 'pwd' ] != '123456' )の場合
  43. {
  44. echo '<script type="text/javascript">alert("ユーザー名またはパスワードが正しくありません!");</script>' ;
  45. 出口;
  46. }それ以外{
  47. echo '<script type="text/javascript">alert("ログインに成功しました!");</script>' ;
  48. 出口;
  49. }


2番目のタイプ:
(HTML ページ)

HTMLコードコンテンツをクリップボードにコピー
  1. <!DOCTYPE HTML>
  2. <html lang="ja- JP " >
  3. <ヘッド>
  4. <メタ文字セット= "utf-8" >
  5. <title>iframe 送信フォーム</title>
  6. </head>
  7. <本文>
  8. <iframe name= "myiframe" style= "display:none;" onload= "iframeLoad(this);" ></iframe>
  9. <フォームアクション= "form.php"ターゲット= "myiframe"メソッド= "POST" >
  10. ユーザー名:<input type= "text" name= "username" /><br/>
  11. パスワード:<input type= "password" name= "userpwd" /><br/>
  12. <input type= "submit" value= "ログイン" />
  13. </フォーム>
  14. <スクリプトタイプ= "text/javascript" >
  15. 関数 iframeLoad(iframe){
  16. var doc = iframe.contentWindow.document;
  17. var html = doc.body.innerHTML;
  18. html != ''の場合{
  19. //取得したjsonデータをjsonオブジェクトに変換します  
  20. var obj = eval( "(" +html+ ")" );
  21. //返されたステータスを判断する  
  22. (obj.status < 1)の場合{
  23. アラート(obj.msg);
  24. }それ以外{
  25. アラート(obj.msg);
  26. window.location.href = "http://www.baidu.com" ;
  27. }
  28. }
  29. }
  30. </スクリプト>
  31. </本文>
  32. </html>

(PHPページ: form.php)

XML/HTML コードコンテンツをクリップボードにコピー
  1. <? php     
  2. //タイムゾーンを設定する
  3. date_default_timezone_set('PRC');
  4. /*
  5. 返されたコミットメッセージ
  6. ステータス: ステータス
  7. msg: プロンプトメッセージ
  8. */
  9. $ msg =配列('status'= > 0, 'msg'= > '');
  10. //送信されたデータを取得する
  11. $ name = $_POST['ユーザー名'];
  12. $ pwd = $_POST['userpwd'];
  13. //ログイン認証をシミュレートする
  14. $ユーザー=配列();
  15. $user['name'] = 'ジャック';
  16. $user['pwd'] = 'jack2014';
  17. $name != $user['name']){
  18. $msg['msg'] = 'ユーザーは登録されていません!';
  19. $ str = json_encode ($msg);
  20. $str をエコーし​​ます。
  21. 出口;
  22. }そうでない場合($pwd != $user['pwd']){
  23. $msg['msg'] = '入力したパスワードが間違っています!';
  24. $ str = json_encode ($msg);
  25. $str をエコーし​​ます。
  26. 出口;
  27. }
  28. $msg['msg'] = 'ログインに成功しました!';
  29. $msg['ステータス'] = 1;
  30. $ str = json_encode ($msg);
  31. $str をエコーし​​ます。

上記は、HTML ベースでフォーム送信後の非更新ページを実装する方法についてエディターが紹介したものです。お役に立てれば幸いです。

<<:  Mysqlサーバーのインストール、構成、起動、シャットダウン方法の詳細な説明

>>:  CentOS7 環境で gcc (バージョン 10.2.0) をアップグレードする詳細な手順

推薦する

Docker で Rancher をデプロイする方法 (落とし穴なし)

操作前に必ずお読みください:注意:管理に rancher を使用する場合は、k8s クラスターが構築...

ローカル yum ソースの設定、国内 yum ソースの設定、epel ソースの設定を行う Linux の手順

1. ローカルyumソースを設定する1. ISOイメージをマウントする マウント -o loop /...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...

Reactは複雑な検索フォームの展開と折りたたみ機能を実装します

時間に余裕を持って、過去を忘れましょう。前のセクションでは、[検索] フォームとクエリおよびリセット...

MySQL での select、distinct、limit の使用

目次1. はじめに2. 選択2.1 単一列のクエリ2.2 複数の列のクエリ2.3 すべての列をクエリ...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

MySQL の条件文で 1 つの情報しか読み取れない問題に対する 2 つの解決策

今日、私の同僚が MYSQL クエリ ステートメントの作成時に非常に奇妙な問題に遭遇しました。MyS...

ウィンドウの中央にブロック要素の位置を設定する方法

ウィンドウの中央にブロック要素の位置を設定する方法ブロック要素をウィンドウの中央に配置する上記の方法...

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

mysqlのデータディレクトリ内のファイルを直接コピーしてデータを復元する実装

mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...

Tomcat の静的ページ (html) で中国語の文字化けが発生する問題の究極の解決策

tomcatでは、jspは文字化けしませんが、htmlの中国語は文字化けします理由はいくつかあります...

mysql5.7 のエンコーディングを utf8mb4 に設定する方法

最近、問題に遭遇しました。モバイル端末の絵文字や一部の絵文字は 4 バイトですが、UTF-8 は 3...

Webpack5-react スキャフォールディングをゼロから構築するための実装手順 (ソースコード付き)

目次ウェブパック5公式スタート建築ガイド構築を開始する依存する準備が完了したら、プロジェクトの構築を...

Vueは3階層メニューを再帰的に実装する

この記事の例では、3階層メニューを再帰的に実装するVueの具体的なコードを参考までに共有しています。...

HTML タグの表示モード (ブロックレベル タグ、インライン タグ、インライン ブロック タグ) に関する簡単な説明

今日の講義では、HTML におけるタグの表示モードについてお話ししましたが、これはブロックレベルタグ...