Here's some code from clientscript/vbulletin_profilefield_edit.js:
Code:
var A = new vB_Hidden_Form(null);
A.add_variables_from_object(this.element);
YAHOO.util.Connect.asyncRequest("POST", fetch_ajax_url("ajax.php"), {success: this.post_save, failure: this.request_timeout, timeout: vB_Default_Timeout, scope: this}, SESSIONURL + "securitytoken=" + SECURITYTOKEN + "&do=saveuserfield&fieldid=" + this.fieldid + "&" + A.build_query_string())
this.element is the form object that has the fields for the profilefield being edited. You can also just call the vB_Hidden_Form function add_variable() for each variable to be added, if there's no form object. The code for vB_Hidden_Form is in clientscript/vbulletin-core.js.