Provided by: libeliom-ocaml-doc_3.0.3-4build2_all
NAME
Eliom_content.Forms - Abstract signature for links and forms creation functions.
Module type
Module type Eliom_content.Forms
Documentation
Module type Forms = sig end Abstract signature for links and forms creation functions. For concrete instance see Eliom_content.Html5 , or Eliom_content.Html_text . type uri type pcdata_elt type form_elt type form_content_elt type form_content_elt_list type form_attrib_t type 'a a_elt type 'a a_content_elt type 'a a_content_elt_list type a_attrib_t type link_elt type link_attrib_t type script_elt type script_attrib_t type textarea_elt type textarea_attrib_t type input_elt type input_attrib_t type select_elt type select_attrib_t type button_elt type button_content_elt type button_content_elt_list type button_attrib_t type optgroup_attrib_t type option_attrib_t type input_type_t type button_type_t type for_attrib === Forms creation === === Links and forms === val make_uri : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'gn, unit, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> 'get -> uri The function make_uri service get_params returns the URL of the service service applied to the GET parameters get_params . By default the returned URL is relative to the current request URL but it is absolute when one of the following conditions is met: -the optional parameter ~absolute_path is true . -the optional parameter ~absolute is true . -the optional parameter ~https is true (resp. false ) and the current request protocol is http (resp. https ). -the optional parameter ~https is true and the function is used outside of a service handler -the service has been created with ~https:true and the current request protocol is http . -the service has been created with ~https:true and the function is used outside of a service handler. When only the first condition is met ( ~absolute_path is true ) the returned URL is just the absolute path, but when any other condition is satisfied the returned URL is prefixed with protocol://hostname[:port] , where: - protocol is: - https if the service has been created with ~https:true or the optional parameter ~https is true ; - http if the optional parameter ~https is false ; -the current request protocol if available; - http in any other case. - hostname is: -the optional parameter ~hostname if given; -the attribute defaulthostname of <host> tag in configuration file or the machine hostname if the option <usedefaulthostname/> is set; -the Host http header of the current request if available; -the attribute defaulthostname of <host> tag in configuration file or the machine hostname in any other case. - port is: -the optional parameter ~port if given; -the attribute defaulthttpsport (resp. defaulthttpport ) of <host> tag in configuration file or 443 (resp. 80) if protocol is https (resp. http ) and the current request protocol is http (resp. https ); -the attribute defaulthttpsport (resp. defaulthttpsport ) of <host> tag in configuration file or 443 (resp. 80) if the option <usedefaulthostname/> is set and protocol is https (resp. http ); -the port associated to the Host http header of the current request if available; -the incoming port of the current request if available; -the attribute defaulthttpport (resp. defaulthttpsport ) of <host> tag in configuration file or 80 (resp. 443 ) in any other case. If given the optional parameter ~fragment is prefixed by # and appended to the URL. The optional parameter keep_nl_params allows one to override the keep_nl_params parameter used when creating the service , see Eliom_service.service for a detailled description. The optional parameter nl_params allows one to add non localized GET parameter to the URL. See the eliom manual for more information about . val make_string_uri : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'gn, unit, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> 'get -> string The function make_string_uri service get_params returns the URL of the of the service service applied to the GET parameters get_params . See Eliom_content.Forms.make_uri for a detailled description of optional parameters. The function make_string_uri is an alias of Eliom_uri.make_string_uri . Warning: The function make_string_uri should not be called outside of a service handler, unless one of the following condition is met: -the optional parameter ~absolute_path is true . -the optional parameter ~absolute is true . -the optional parameter ~https is true . -the service has been created with ~https:true . -the service is an external service. val uri_of_string : (unit -> string) -> uri The function uri_of_string f returns a URI whose content is equivalent to f () . For XML tree build with TyXML, like Eliom_content.Html5 or Svg.F , the function f is applied each time the XML tree is sent to the client (either as page content or as a marshalled OCaml value). Hence, the function is always evaluated in the context of a service handler. For other module, the function f is immediatly applied. val make_uri_components : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'gn, unit, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> 'get -> string * (string * string) list * string option The function make_uri_components service get_params returns the a triplet (path, get_params, fragment) that is a decomposition of the URL for the service service applied to the GET parameters get_params . By default the returned path is relative to the current request URL but it could be absolute URL in some situation, see Eliom_content.Forms.make_uri for more information and a description of optional parameters. The function make_uri_components is an alias for Eliom_uri.make_uri_components . Warning: depending on the optional parameters, the function make_uri_components may not be used outside of a service handler. See Eliom_content.Forms.make_string_uri for a detailled description. val make_post_uri_components : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> service:('get, 'post, [< Eliom_service.post_service_kind ], [< Eliom_service.suff ], 'gn, 'pn, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> ?keep_get_na_params:bool -> 'get -> 'post -> string * (string * string) list * string option * (string * string) list Same a Eliom_content.Forms.make_uri_components , but also returns a list of post parameters. val a : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> ?a:a_attrib_t -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'd, unit, [< Eliom_service.registrable ], 'f) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> 'a a_content_elt_list -> 'get -> 'a a_elt The function a service a_content get_params creates a <a> node that link to service applied to GET parameters get_params and whose content is a_content . By default, the href attribute is a relative URL recomputed at each request with Eliom_content.Forms.make_uri . By default, the link is realized such that the client-side Eliom application keeps running irrespectable of the usage of the link (cf. ). By contrast, if the optional parameter ~xhr:false is given, the link is realized as a standard HTML link and clicking it discontinues the Eliom application. The ~xhr parameter has no effect outside an Eliom application. NB that the default value of ~xhr is configurable through <<a_api project="eliom" subproject="server" | val Eliom_config.set_default_links_xhr >> The optional parameter ~a allows one to add extra HTML attributes to the generated node. See Eliom_content.Forms.make_uri for description of other optional parameters. val css_link : ?a:link_attrib_t -> uri:uri -> unit -> link_elt The function css_link ~uri () creates a <link> node that reference a Cascading StyleSheet (CSS). If the CSS is generated by an Eliom service, use Eliom_content.Forms.make_uri to calculate the service URI. If the CSS is a static file, you may also use Eliom_service.static_dir or Eliom_service.external_service to abstract the file with a service. The optional parameter ~a allows one to add extra HTML attributes to the generated node. val js_script : ?a:script_attrib_t -> uri:uri -> unit -> script_elt The function js_script ~uri () creates a <script> node that reference a javascript file. If the script content is generated by an Eliom service, use Eliom_content.Forms.make_uri to calculate the service URI. If it is a static file, you may also use Eliom_service.static_dir or Eliom_service.external_service to abstract the file with a service. The optional parameter ~a allows one to add extra HTML attributes to the generated node. val get_form : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> ?a:form_attrib_t -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'gn, 'pn, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('gn -> form_content_elt_list) -> form_elt The function post_form service formgen creates a GET <form> to service . The content of the <form> is generated by the function formgen , that takes the names of the service parameters as parameters. By default, the action attribute is a relative URL recomputed at each request with Eliom_content.Forms.make_uri . By default, the form is realized such that the client-side Eliom application keeps running irrespectable of the usage of the form (cf. ). By contrast, if the optional parameter ~xhr:false is given, the form is realized as a standard HTML form and submitting it discontinues the Eliom application. The ~xhr parameter has no effect outside an Eliom application. NB that the default value of ~xhr is configurable through <<a_api project="eliom" subproject="server" | val Eliom_config.set_default_links_xhr >> The optional parameter ~a allows one to add extra HTML attributes to the generated node. See Eliom_content.Forms.make_uri for description of other optional parameters. val lwt_get_form : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> ?a:form_attrib_t -> service:('get, unit, [< Eliom_service.get_service_kind ], [< Eliom_service.suff ], 'gn, 'pn, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('gn -> form_content_elt_list Lwt.t) -> form_elt Lwt.t Same as Eliom_content.Forms.get_form but taking a cooperative function for <form> content generation. val post_form : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> ?a:form_attrib_t -> service:('get, 'post, [< Eliom_service.post_service_kind ], [< Eliom_service.suff ], 'gn, 'pn, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?keep_get_na_params:bool -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('pn -> form_content_elt_list) -> 'get -> form_elt The function post_form service formgen get_params creates a POST <form> to service preapplied to the GET parameters get_params . The content of the <form> is generated by the function formgen , that takes the names of the service parameters as parameters. By default, the action attribute is a relative URL recomputed at each request with Eliom_content.Forms.make_uri . The optional parameter ~a allows one to add HTML attributes to the generated node. See Eliom_service.post_coservice' for a description of the ~keep_get_na_params optional parameter ; see Eliom_content.Forms.get_form for ~xhr and see Eliom_content.Forms.make_uri for other optional parameters. val lwt_post_form : ?absolute:bool -> ?absolute_path:bool -> ?https:bool -> ?a:form_attrib_t -> service:('get, 'post, [< Eliom_service.post_service_kind ], [< Eliom_service.suff ], 'gn, 'pn, [< Eliom_service.registrable ], 'return) Eliom_service.service -> ?hostname:string -> ?port:int -> ?fragment:string -> ?keep_nl_params:[ `All | `None | `Persistent ] -> ?keep_get_na_params:bool -> ?nl_params:Eliom_parameter.nl_params_set -> ?xhr:bool -> ('pn -> form_content_elt_list Lwt.t) -> 'get -> form_elt Lwt.t Same as Eliom_content.Forms.post_form but taking a cooperative function for <form> content generation. === Form widgets === val int_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< int Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:int -> unit -> input_elt Creates an <input> tag for an integer val int32_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< int32 Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:int32 -> unit -> input_elt Creates an <input> tag for an integer val int64_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< int64 Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:int64 -> unit -> input_elt Creates an <input> tag for an integer val float_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< float Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:float -> unit -> input_elt Creates an <input> tag for a float val string_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< string Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:string -> unit -> input_elt Creates an <input> tag for a string val user_type_input : ('a -> string) -> ?a:input_attrib_t -> input_type:input_type_t -> ?name:[< 'a Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:'a -> unit -> input_elt Creates an <input> tag for a user type val raw_input : ?a:input_attrib_t -> input_type:input_type_t -> ?name:string -> ?value:string -> unit -> input_elt Creates an untyped <input> tag. You may use the name you want (for example to use with Eliom_parameter.any ). val file_input : ?a:input_attrib_t -> name:[< Eliom_lib.file_info Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> unit -> input_elt Creates an <input> tag for sending a file val image_input : ?a:input_attrib_t -> name:[< Eliom_parameter.coordinates Eliom_parameter.oneradio ] Eliom_parameter.param_name -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..."> tag that sends the coordinates the user clicked on val int_image_input : ?a:input_attrib_t -> name:[< (int * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:int -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of type int val int32_image_input : ?a:input_attrib_t -> name:[< (int32 * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:int32 -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of type int32 val int64_image_input : ?a:input_attrib_t -> name:[< (int64 * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:int64 -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of type int64 val float_image_input : ?a:input_attrib_t -> name:[< (float * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:float -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of type float val string_image_input : ?a:input_attrib_t -> name:[< (string * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:string -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of type string val user_type_image_input : ('a -> string) -> ?a:input_attrib_t -> name:[< ('a * Eliom_parameter.coordinates) Eliom_parameter.oneradio ] Eliom_parameter.param_name -> value:'a -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and a value of user defined type val raw_image_input : ?a:input_attrib_t -> name:string -> value:string -> ?src:uri -> unit -> input_elt Creates an <input type="image" name="..." value="..."> tag that sends the coordinates the user clicked on and an untyped value val bool_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `One of bool ] Eliom_parameter.param_name -> unit -> input_elt Creates a checkbox <input> tag that will have a boolean value. The service must declare a bool parameter. val int_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of int ] Eliom_parameter.param_name -> value:int -> unit -> input_elt Creates a checkbox <input> tag that will have an int value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val int32_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of int32 ] Eliom_parameter.param_name -> value:int32 -> unit -> input_elt Creates a checkbox <input> tag that will have an int32 value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val int64_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of int64 ] Eliom_parameter.param_name -> value:int64 -> unit -> input_elt Creates a checkbox <input> tag that will have an int64 value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val float_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of float ] Eliom_parameter.param_name -> value:float -> unit -> input_elt Creates a checkbox <input> tag that will have a float value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val string_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of string ] Eliom_parameter.param_name -> value:string -> unit -> input_elt Creates a checkbox <input> tag that will have a string value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val user_type_checkbox : ('a -> string) -> ?a:input_attrib_t -> ?checked:bool -> name:[ `Set of 'a ] Eliom_parameter.param_name -> value:'a -> unit -> input_elt Creates a checkbox <input> tag that will have a "user type" value. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type set . val raw_checkbox : ?a:input_attrib_t -> ?checked:bool -> name:string -> value:string -> unit -> input_elt Creates a checkbox <input> tag with untyped content. Thus you can do several checkboxes with the same name (and different values). The service must declare a parameter of type any . val string_radio : ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of string ] Eliom_parameter.param_name -> value:string -> unit -> input_elt Creates a radio <input> tag with string content val int_radio : ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of int ] Eliom_parameter.param_name -> value:int -> unit -> input_elt Creates a radio <input> tag with int content val int32_radio : ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of int32 ] Eliom_parameter.param_name -> value:int32 -> unit -> input_elt Creates a radio <input> tag with int32 content val int64_radio : ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of int64 ] Eliom_parameter.param_name -> value:int64 -> unit -> input_elt Creates a radio <input> tag with int64 content val float_radio : ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of float ] Eliom_parameter.param_name -> value:float -> unit -> input_elt Creates a radio <input> tag with float content val user_type_radio : ('a -> string) -> ?a:input_attrib_t -> ?checked:bool -> name:[ `Radio of 'a ] Eliom_parameter.param_name -> value:'a -> unit -> input_elt Creates a radio <input> tag with user_type content val raw_radio : ?a:input_attrib_t -> ?checked:bool -> name:string -> value:string -> unit -> input_elt Creates a radio <input> tag with untyped string content (low level) val string_button : ?a:button_attrib_t -> name:[< string Eliom_parameter.setone ] Eliom_parameter.param_name -> value:string -> button_content_elt_list -> button_elt Creates a <button> tag with string content val int_button : ?a:button_attrib_t -> name:[< int Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int -> button_content_elt_list -> button_elt Creates a <button> tag with int content val int32_button : ?a:button_attrib_t -> name:[< int32 Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int32 -> button_content_elt_list -> button_elt Creates a <button> tag with int32 content val int64_button : ?a:button_attrib_t -> name:[< int64 Eliom_parameter.setone ] Eliom_parameter.param_name -> value:int64 -> button_content_elt_list -> button_elt Creates a <button> tag with int64 content val float_button : ?a:button_attrib_t -> name:[< float Eliom_parameter.setone ] Eliom_parameter.param_name -> value:float -> button_content_elt_list -> button_elt Creates a <button> tag with float content val user_type_button : ('a -> string) -> ?a:button_attrib_t -> name:[< 'a Eliom_parameter.setone ] Eliom_parameter.param_name -> value:'a -> button_content_elt_list -> button_elt Creates a <button> tag with user_type content val raw_button : ?a:button_attrib_t -> button_type:button_type_t -> name:string -> value:string -> button_content_elt_list -> button_elt Creates a <button> tag with untyped string content val button : ?a:button_attrib_t -> button_type:button_type_t -> button_content_elt_list -> button_elt Creates a <button> tag with no value. No value is sent. val textarea : ?a:textarea_attrib_t -> name:[< string Eliom_parameter.setoneradio ] Eliom_parameter.param_name -> ?value:string -> unit -> textarea_elt Creates a <textarea> tag val raw_textarea : ?a:textarea_attrib_t -> name:string -> ?value:string -> unit -> textarea_elt Creates a <textarea> tag for untyped form type 'a soption = option_attrib_t * 'a * pcdata_elt option * bool type 'a select_opt = | Optgroup of optgroup_attrib_t * string * 'a soption * 'a soption list | Option of 'a soption The type for <select> options and groups of options. -The field of type 'a in soption is the value that will be sent by the form. -If the pcdata_elt option is not present it is also the value displayed. -The string in select_opt is the label val int_select : ?a:select_attrib_t -> name:[< `One of int ] Eliom_parameter.param_name -> int select_opt -> int select_opt list -> select_elt Creates a <select> tag for int values. val int32_select : ?a:select_attrib_t -> name:[< `One of int32 ] Eliom_parameter.param_name -> int32 select_opt -> int32 select_opt list -> select_elt Creates a <select> tag for int32 values. val int64_select : ?a:select_attrib_t -> name:[< `One of int64 ] Eliom_parameter.param_name -> int64 select_opt -> int64 select_opt list -> select_elt Creates a <select> tag for int64 values. val float_select : ?a:select_attrib_t -> name:[< `One of float ] Eliom_parameter.param_name -> float select_opt -> float select_opt list -> select_elt Creates a <select> tag for float values. val string_select : ?a:select_attrib_t -> name:[< `One of string ] Eliom_parameter.param_name -> string select_opt -> string select_opt list -> select_elt Creates a <select> tag for string values. val user_type_select : ('a -> string) -> ?a:select_attrib_t -> name:[< `One of 'a ] Eliom_parameter.param_name -> 'a select_opt -> 'a select_opt list -> select_elt Creates a <select> tag for user type values. val raw_select : ?a:select_attrib_t -> name:string -> string select_opt -> string select_opt list -> select_elt Creates a <select> tag for any (untyped) value. val int_multiple_select : ?a:select_attrib_t -> name:[< `Set of int ] Eliom_parameter.param_name -> int select_opt -> int select_opt list -> select_elt Creates a <select> tag for int values. val int32_multiple_select : ?a:select_attrib_t -> name:[< `Set of int32 ] Eliom_parameter.param_name -> int32 select_opt -> int32 select_opt list -> select_elt Creates a <select> tag for int32 values. val int64_multiple_select : ?a:select_attrib_t -> name:[< `Set of int64 ] Eliom_parameter.param_name -> int64 select_opt -> int64 select_opt list -> select_elt Creates a <select> tag for int64 values. val float_multiple_select : ?a:select_attrib_t -> name:[< `Set of float ] Eliom_parameter.param_name -> float select_opt -> float select_opt list -> select_elt Creates a <select> tag for float values. val string_multiple_select : ?a:select_attrib_t -> name:[< `Set of string ] Eliom_parameter.param_name -> string select_opt -> string select_opt list -> select_elt Creates a <select> tag for string values. val user_type_multiple_select : ('a -> string) -> ?a:select_attrib_t -> name:[< `Set of 'a ] Eliom_parameter.param_name -> 'a select_opt -> 'a select_opt list -> select_elt Creates a <select> tag for user type values. val raw_multiple_select : ?a:select_attrib_t -> name:string -> string select_opt -> string select_opt list -> select_elt Creates a <select> tag for any (untyped) value. val a_for : 'a Eliom_parameter.param_name -> for_attrib