+ method submit_form ?form_number ?form_name ?fields ?button ?xy () =
+ let args = ref [] in
+ let add name f = function
+ | None -> ()
+ | Some p -> args := sv_of_string name :: f p :: !args
+ in
+ add "form_number" sv_of_int form_number;
+ add "form_name" sv_of_string form_name;
+ (match fields with
+ | None -> ()
+ | Some fields ->
+ let hv = hv_empty () in
+ List.iter (
+ fun (name, value) ->
+ hv_set hv name (sv_of_string value)
+ ) fields;
+ let sv = hashref hv in
+ args := sv_of_string "fields" :: sv :: !args
+ );
+ add "button" sv_of_string button;
+ (match xy with
+ | None -> ()
+ | Some (x, y) ->
+ args := sv_of_string "x" :: sv_of_int x ::
+ sv_of_string "y" :: sv_of_int y :: !args);
+ let sv = call_method sv "submit_form" !args in
+ new Pl_HTTP_Response.http_response sv