Skip to content

Instantly share code, notes, and snippets.

@ivanjr0
Created May 5, 2012 15:19
Show Gist options
  • Save ivanjr0/2603248 to your computer and use it in GitHub Desktop.
Save ivanjr0/2603248 to your computer and use it in GitHub Desktop.
Enquanto eu não descubro outra forma de fazer isso...
(function($, window, undefined) {
var _create_hidden_field, _dump_form_data;
$.syncPost = function(url, data) {
var form = $('<form></form')
.attr('method', 'post')
.attr('action', url);
_dump_form_data(form, data);
form
.appendTo($('body'))
.submit();
};
_create_hidden_field = function(form, key, value, keyModifier) {
if (typeof keyModifier === 'undefined' || keyModifier === null) {
keyModifier = function(k) { return k; };
}
if ($.isPlainObject(value) || $.isArray(value)) {
$.each(value, function(v_key, v_value) {
_create_hidden_field(form, v_key, v_value, function(n_key) {
return key + '[' + n_key + ']';
});
});
return;
}
$('<input />')
.attr('type', 'hidden')
.attr('name', keyModifier(key))
.attr('value', value)
.appendTo(form);
};
_dump_form_data = function(form, data) {
$.each(data, function(key, value) {
_create_hidden_field(form, key, value);
});
};
})(jQuery, window);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment