Skip to content

Instantly share code, notes, and snippets.

@isaacs
Created April 1, 2009 23:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save isaacs/88939 to your computer and use it in GitHub Desktop.
Save isaacs/88939 to your computer and use it in GitHub Desktop.
YUI('lang', function (Y) {
YAP.toQueryString = function (obj, name) {
if (Y.Lang.isNull(obj) || Y.Lang.isUndefined(obj)) {
return name ? encodeURIComponent(name) + '=' : '';
}
if (Y.Lang.isBoolean(obj)) obj = obj ? 1 : 0;
if (Y.Lang.isNumber(obj) || Y.Lang.isString(obj)) {
return encodeURIComponent(name) + '=' + encodeURIComponent(obj);
}
if (Y.Lang.isArray(obj)) {
var s = [];
name = name+'[]';
for (var i = 0, l = obj.length; i < l; i ++) {
s.push( arguments.callee(obj[i], name) );
}
return s.join('&');
}
// now we know it's an object.
var s = [];
var begin = name ? name + '[' : '';
var end = name ? ']' : '';
for (
var i in obj
) if (
obj.hasOwnProperty(i) && p.substr(p.length - 3, 3) !== '___'
) s.push(arguments.callee(obj[i], begin + i + end));
return s.join("&");
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment