首頁 > web前端 > H5教程 > 主體

舉例詳解HTML5中使用JSON格式提交表單_html5教學技巧

WBOY
發布: 2016-05-16 15:46:37
原創
1506 人瀏覽過

以JSON編碼格式提交表單資料是HTML5對WEB發展演化的另一個大貢獻,先前我們的HTML表單資料是透過key-value方式傳輸的伺服器端,這種形式的傳輸對資料組織缺乏管理,形式十分原始。而新出現的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 Code複製內容到剪貼簿
  1. form enctype=enctype=enctype>
  2.   
  3.   input name name name= 🎜> value
  4. ='Bender'> >   select name 
  5. name
  6. >       option selected> selected>
  7. >option>       option>Kickable
  8. >Kickable>     
  9. select>     input type type name=
  10. 'shiny' checked >
  11. form>
  12.   
  13.     
  14. // 產生的Json資料是   
  15. {   
  16.   "name":   "Bender"   
  17. , "hind":   "Bitable"   
, "shiny":  true   

}  

例2 當表單存在多個重名的表單域時,依JSON陣列編碼    
XML/HTML Code複製內容到剪貼簿
  1. 表單 enctype=enctype=>
  2.   
  3.       輸入 類型 類型 類型 名稱='牆上的瓶子'  
  4. '1'>         輸入 類型 類型 類型 名稱='牆上的瓶子' 
  5.  '2'>         輸入 類型 類型 類型 名稱=
  6. '牆上的瓶子'
  7.   '3'>
  8.   
  9.     
  10. 表格>
  11.   
  12.         
    // 產生的Json資料是   

    {   
      「牆上的瓶子」:   [1, 2, 3]   
    }   範例3表單域名稱以陣列形成出現的複雜結構 XML/HTML 程式碼將內容複製到剪貼簿
  1. 表單 enctype=enctype=>
  2.   
  3.   輸入 姓名=姓名==> ]' =
  4. 'Dahut'>   輸入 姓名=姓名==姓名]' 
  5. ='Hypatia'>> 🎜>   輸入 姓名=姓名=
  6. 1]'
  7.  ='塞爾瑪'>>   輸入 姓名
  8. =姓名= 0]' 
  9. =
  10. '阿希姆'
  11. >
  12. '阿希>阿希>
  13. 表格>
  14.   
  15.     
  16. // 產生的Json資料是   
  17. {   
  18.     「寵物」:  ​​{   
        「物種」:  「達胡特」   

    ,   「姓名」:     「希帕夏」   

    }    ,   「孩子們」:   [「艾希莉」,「瑟瑪」]   
}   例4在上面的例子中,恢復的備份序號值將null取代     XML/HTML 程式碼將內容複製到剪貼簿
  1. 表單 enctype=enctype=>
  2.   
  3.       輸入  ='thunk'>        
  4. 輸入 - - -
  5.  ='thunk'>      
  6. 表格>          
  7.     // 產生的Json資料是   
  8.     {   
  9.         "hearbeat":   ["thunk", null, "thunk"]   
  10.     }  
例5 瀑布池塘格式,瀑布層數無限制
   

XML/HTML 程式碼
將內容複製到剪貼簿
  1. 表單 enctype=enctype=>
  2.   
  3.       輸入 名稱 名稱 ='Dahut'>
  4.       輸入 名稱 名稱 ='Hypatia'>
  5.       輸入 名稱 名稱 名稱 =
  6. 'Felis Stultus'
  7. >'Felis Stultus'>'Felis St >       輸入 名稱 名稱 名稱 
  8. ='比莉'>'比莉'>
  9.     
  10. 表格
  11. >
  12.   
  13.         
  14.     // 產生的Json資料是   
  15.     {   
  16.         「寵物」:  ​​[   
  17.             {   
  18.                 "物種":  "達胡特"   
  19.             ,   「姓名」:     「希帕夏中」  
  20.             }   
  21.         ,   {   
  22.                 "物種":  "貓科動物"   
            ,   「被稱者」:     「比莉」   

            }   

        ]        }  
例6真的,沒有備份備份限制!     XML/HTML 程式碼將內容複製到剪貼簿
  1. form enctype=enctype=enctype>
  2.   
  3.       input name > > > 
  4. value='Amaze'>  
  5.     
  6. form>
  7.   
  8.         
  9.     // 產生的Json資料是   
  10.     {   
  11.         "wow":  {   
  12.             "such": {   
  13.                 "deep": [   
  14.                     null   
  15.                 ,   null   
  16.                 ,   null   
  17.                 ,   {   
  18.                         "much": {   
  19.                             "power": 
  20.                                 
  21.                             }   
  22.                         }   
  23.                     }   
  24.                 ]   
  25.             }   

        }   

    }  
例7 文件上傳     XML/HTML Code複製內容到剪貼簿
  1. form enctype=enctype=enctype>
  2.   
  3.      input type type  name='file'
  4.  multiple
  5.  multiple >    
  6. form>
  7.   
  8.        
  9.    // 假設你上傳了2個檔案, 產生的Json資料是:   
  10.    {   
  11.        "file": [   
  12.            {   
  13.                "type": "text/plain",                   "name": "dahut.txt",   
  14.                "body": "
  15. REFBQUFBQUFIVVVVVVVVVVVVVCEhIQo           },   
  16.            {   
  17.                "type": "text/plain",   
  18.                "name": "litany.txt",                                "body": "
  19. SSBtdXN0IG5vdCBmZWFyLlxuRmV🎜>SSBtdXN0IG5vdCBmZWFyLlxuRmVhciBpcyB0aLmLpram            }   
  20.        ]   
  21.    }   
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!