jquery字符串序列化方法總結


  在jquery中字符串序列化方法包括有param() 、serialize() 、serializeArray(),在這里對其常用做法進行總結。

  1. $.param()方法
    這是serialize()方法的核心,用來對一個數組或對象按照key/value進行序列化。

    常用方法:
     1 直接傳遞一個obj,直接轉化成key=value然后用&連接起來了
     2 $.param({name:'bill',age:18}); 
     3 結果:name=bill&age=18
     4 這里的{X:Y,A:B}會變成X=Y&A=B的格式
     5 
     6 或者name value鍵值對組成的數組,這個好說,name=value然后用&拼起來
     7 $.param([
     8    {name:'name',value:'bill'},
     9    {name:'age',value:18}
    10  ]);
    11 結果:name=bill&age=18
    12 這里的name:'name'兩個name是不同的,name value是固定格式
    13  這里的{name:XXX,value:YYY} 會變成XXX=YYY的格式,比起上面的寫法,顯得更啰嗦
    14 
    15 當name出現相同的時候
    16 $.param([
    17    {name:'name',value:'bill'},
    18    {name:'name',value:'tom'}
    19  ]); 
    20 結果:name=bill&name=tom
    21 這樣的話,有些后端語言是取不到兩個name的
    22 
    23 但如果這樣呢?
    24 $.param([
    25    {
    26       name:'name',
    27       value:['bill','tom']
    28    }
    29  ]); 
    30 結果:name=tom,bill
    31 居然用逗號把value接起來了,好吧,后端分割開也行
    32 
    33 
    34 用傳遞一個obj的方法呢?
    35 $.param({
    36    name:['bill','tom'],
    37    age:[18,19],
    38    sex:["male","female"]
    39  });
    40 結果:name[]=bill&name[]=tom&age[]=18&age[]=19&sex[]=male&sex[]=female
    41  name,age,sex被自動加上中括號了,
    42  對於php來說,$_REQUEST['name'],$_REQUEST['age'],$_REQUEST['sex']都是array了
    43  對應好下角標,3個person的信息就傳遞過來了
    44 
    45 換成第二種固定格式:
    46 $.param([
    47    {name:'name',value:['bill','tom']},
    48    {name:"age",value:[18,19]},
    49    {name:"sex",value:["male","female"]}
    50  ])
    51 結果:name=bill,tom&age=18,19&sex=male,female

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM