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) をアップグレードする詳細な手順

推薦する

自己終了XHTMLタグを書くときに注意すべきこと

XHTMLの img タグは、次のように記述する必要があります: <img alt="...

Vueはスクロールバースタイルを実装します

最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...

JavaScript オブジェクト (詳細)

目次JavaScript オブジェクト1. 定義2. オブジェクトの分類3. オブジェクトを定義する...

Ubuntu 上の Apache で SSL (https 証明書) を設定する正しい方法の詳細な説明

まず、Alibaba Cloud の公式チュートリアルをご覧ください。ファイルの説明: 1. 証明書...

JS ES6コーディング標準の詳細な説明

目次1. ブロックスコープ1.1. let は var を置き換える1.2. グローバル定数とスレッ...

単一テーブルのMySQLバックアップとリストアに関する簡単な説明

A. MySQLバックアップツールxtrabackupのインストール1. Percona 公式 xt...

MySQL 5.6 から 5.7 にアップグレードする際のマスター スレーブ遅延問題のトラブルシューティング

最近、Zabbix データベースを MySQL 5.6 から 5.7 にアップグレードしたときに、マ...

Linux (Ubuntu 18.04) に Anaconda をインストールする詳細な手順

Anaconda は、大規模なデータ処理、予測分析、科学計算のための最も人気のある Python デ...

CSS3 FlexBox の伸縮自在なレイアウトを 10 分で理解する

基本的な紹介特徴Flexbox は、よりシンプルで効率的なレイアウト方法を提供する CSS 表示タイ...

SQL文におけるGROUP BYとHAVINGの使用に関する簡単な説明

GROUP BY 句と HAVING 句を紹介する前に、まず SQL 言語の特殊な関数である集計関数...

リモートログインとポート公開を防ぐためのLinuxサーバー構成IPホワイトリスト

序文ブロガーが使用しているサーバーは Alibaba Cloud から購入したものです。実際、Ali...

コードをセマンティックにする HTML のヒント

HTML のセマンティクスはありふれた問題のようです。Google で検索すると、セマンティクスに関...

Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決す...

LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

Linux C/C++ では、スレッド レベルの操作は通常、pthread ライブラリを通じて実行さ...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...