ホームページ ウェブフロントエンド H5 チュートリアル HTML5_html5 チュートリアル スキルで JSON 形式を使用してフォームを送信する詳細な例

HTML5_html5 チュートリアル スキルで JSON 形式を使用してフォームを送信する詳細な例

May 16, 2016 pm 03:46 PM
html5 json

JSON エンコード形式でのフォーム データの送信は、WEB の開発と進化に対する HTML5 のもう 1 つの大きな貢献です。これまで、HTML フォーム データはキーバリュー方式でサーバー側で送信されていましたが、この形式の送信には管理が不足していました。データ構成の形式は非常に原始的です。新たに登場したフォームデータをJSON形式で送信する方法は、フォーム内のすべてのデータを一定の仕様でJSON形式に変換してサーバーに送信します。サーバーが受信したデータは、直接使用できる修飾された JSON コードです。 JSON 形式でフォーム送信を宣言する方法

フォームを使用してファイルをアップロードする方法については、誰もがよく知っているはずです。これには、HTML の form タグに enctype="multipart/form-data" ステートメントを追加する必要があります。これにより、ブラウザーにフォーム データをファイルで送信するように指示されます。アップロードモード。 JSON 形式の送信フォームの宣言は、enctype='application/json' のように記述されます。
古いブラウザとの互換性

JSON 形式でのフォームの送信は、HTML5 の非常に新しい仕様です。これらの仕様を実装している最新のブラウザーのみが enctype='application/json' のセマンティクスを認識し、フォーム データを JSON 形式に正しくパッケージ化できます。一部の古いブラウザーや、これらの標準をまだ実装していないブラウザーでは、enctype='application/json' が何を表すかを認識できないため、フォームの enctype は自動的に application/x-www-form-urlencoded のデフォルト エンコーディングに低下します。 .フォーマット。サーバー側のコードは、enctype の値に基づいてデータの受信方法を決定できます。
JSONエンコード形式投稿フォームのフォーマット例
例1 基本的な使い方

XML/HTML コードコンテンツをクリップボードにコピー
  1. <form enctype='application/json'>
  2. <入力 名前='名前' ='ベンダー'>
  3. <選択 名前='hind' >
  4. <オプション選択>ビット可能&lt ;/オプション>
  5. <オプション>キック可能</オプション>
  6. </select>
  7. <入力 type='チェックボックス' 名前='shiny' チェック済み>
  8. </フォーム>
  9. //生成された Json データは
  10. です
  11. {
  12. "名前": "ベンダー"
  13. 、"後": "噛みやすい"
  14. 、「光沢」: true
  15. }

例 2 フォーム内に同じ名前のフォームフィールドが複数ある場合、それらを JSON 配列としてエンコードします

XML/HTML コードコンテンツをクリップボードにコピー
  1. <フォーム enctype='application/json'>
  2. <入力 type='数値' 名前='ボトルオンウォール' ='1'>
  3. <入力 type='数値' 名前='ボトルオンウォール' ='2'>
  4. <入力 type='数値' 名前='ボトルオンウォール' ='3'>
  5. </フォーム>
  6. // 生成された Json データです
  7. {
  8. 「ボトルオンウォール」: [1, 2, 3]
  9. }

例 3 表ドメイン名が数組で形成される複雑な構造

XML/HTML コード复制コンテンツ到剪贴板
  1. <フォーム enctype='application/json'>
  2. <入力 名前='pet[種]' ='ダハット'>
  3. <入力 名前='pet[名前]' ='Hypatia'>
  4. <入力 名前='子供[ 1]' ='テルマ'>
  5. <入力 名前='子供[ 0]' ='アシュリー'>
  6. </フォーム>
  7. // 生成された Json データ据は
  8. {
  9. 「ペット」: {
  10. 「種」: 「ダハット」
  11. , 「名前」: 「ヒュパティア」
  12. }
  13. 、 "キッズ": ["アシュリー"、 "テルマ"]
  14. }

例 4 上の例では、失われた数列番号は null で置き換えられます

XML/HTML コード复制コンテンツ到剪贴板
  1. <フォーム enctype='application/json'>
  2. <入力 名前='hearbeat[ 0]' ='サンク'>
  3. <入力 名前='hearbeat[ 2]' ='サンク'>
  4. </フォーム>
  5. // 生成された Json データです
  6. {
  7. 「ハートビート」: [「サンク」, null, 「サンク」]
  8. }

例5 多重数组嵌套格式,嵌套层数無制限

XML/HTML コード复制コンテンツ到剪贴板
  1. <フォーム enctype='application/json'>
  2. <入力 名前='pet[ 0][種]' ='ダハット'>
  3. <入力 名前='pet[ 0][名前]' ='ヒパティア'>
  4. <入力 名前='pet[ 1][種]' ='フェリス・ストゥルタス'>
  5. <入力 名前='pet[ 1][名前]' ='ビリー'>
  6. </フォーム>
  7. // 生成された Json データです
  8. {
  9. 「ペット」: [
  10. {
  11. 「種」: 「ダハット」
  12. , 「名前」: 「ヒュパティア」
  13. }
  14. , {
  15. 「種」: 「フェリス・ストゥルトゥス」
  16. , 「名前」: 「ビリー」
  17. }
  18. ]
  19. }

例6 真的,没有数组维度制限!

XML/HTML コード复制コンテンツ到剪贴板
  1. <form enctype='application/json'>
  2. <入力 名前='すごい[など][深い][3][たくさん][パワー][!]' ='驚き' >
  3. </フォーム>
  4. // 生成された Json データは
  5. です
  6. {
  7. 「すごい」: {
  8. 「そのような」: {
  9. "深い": [
  10. 、null
  11. 、null
  12. 、 、 {
  13. 「たくさん」: {
  14. "パワー": {
  15. 「!」: 「驚く」
  16. }
  17. 例 7 ファイルのアップロード
  18. XML/HTML コード
  19. コンテンツをクリップボードにコピー
    1. <form enctype='application/json'>
    2. <input type='file' 名前='ファイル' 複数>
    3. </フォーム>
    4. // 2 つのファイルをアップロードすると、生成される Json データは次のとおりです:
    5. {
    6. "ファイル": [
    7. "タイプ": "テキスト/プレーン"、
    8. "名前": "dahut.txt"、
    9. "ボディ": "
    10. REFBQUFBQUFIVVVVVVVVVVVVCEhIQo="
    11. }、
    12. "タイプ": "テキスト/プレーン"、
    13. "名前": "litany.txt"、
    14. "本文": " SSBTDXN0IG5VDCBMZWFYLLLXVHCIBPCIBPCIB0AGUGBWLUZC1RWXSZIUCG
    15. =="
    16. ]
    17. }
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLの表の境界線 HTMLの表の境界線 Sep 04, 2024 pm 04:49 PM

HTMLの表の境界線

HTML のネストされたテーブル HTML のネストされたテーブル Sep 04, 2024 pm 04:49 PM

HTML のネストされたテーブル

HTML 左マージン HTML 左マージン Sep 04, 2024 pm 04:48 PM

HTML 左マージン

HTML テーブルのレイアウト HTML テーブルのレイアウト Sep 04, 2024 pm 04:54 PM

HTML テーブルのレイアウト

HTML 内のテキストの移動 HTML 内のテキストの移動 Sep 04, 2024 pm 04:45 PM

HTML 内のテキストの移動

HTML 順序付きリスト HTML 順序付きリスト Sep 04, 2024 pm 04:43 PM

HTML 順序付きリスト

HTML の onclick ボタン HTML の onclick ボタン Sep 04, 2024 pm 04:49 PM

HTML の onclick ボタン

HTML入力プレースホルダー HTML入力プレースホルダー Sep 04, 2024 pm 04:54 PM

HTML入力プレースホルダー

See all articles