$.param()

Ajax通信によって送られるオプションを送信前に独自に制御したい場合に使用します。

$.param( obj ) 1.2追加

戻り値:String

引数 説明
obj シリアライズ化したい配列またはオブジェクトを指定します。

$.param( obj, traditional ) 1.4追加

戻り値:String

引数 説明
obj シリアライズ化したい配列またはオブジェクトを指定します。
traditional シリアライズ化を"浅く"するかどうかを指定します。

サンプル

var myObject = {
  a: {
    one: 1,
    two: 2,
    three: 3
  },
  b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));

alert(recursiveEncoded);
/* 実行結果
a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
*/

alert(recursiveDecoded);
/* 実行結果
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3
*/

第2引数traditionalをtrueにすると実行結果は下記のようになります。

var myObject = {
  a: {
    one: 1,
    two: 2,
    three: 3
  },
  b: [1,2,3]
};
var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);

alert(shallowEncoded);
/* 実行結果
a=%5Bobject+Object%5D&b=1&b=2&b=3
*/

alert(shallowDecoded);
/* 実行結果
a=[object+Object]&b=1&b=2&b=3
*/

デモ

<!DOCTYPE html>
<html>
<head>
<style>div { color:red; }</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<div id="results"></div>
<script>
  var params = { width:1680, height:1050 };
  var str = $.param(params);
  $("#results").text(str);
</script>
</body>
</html>

 Back to top

© 2010 - 2017 STUDIO KINGDOM