在jquery中字符串序列化方法包括有param() 、serialize() 、serializeArray(),在這里對其常用做法進行總結。
- $.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