"ocaml_beginners"::[] example for tables and forms with select/option

View: New views
2 Messages — Rating Filter:   Alert me  

"ocaml_beginners"::[] example for tables and forms with select/option

by Rakotomandimby Mihamina-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello all
I am looking for soem examples (Pleac-like examples, not "documentation")
on using tables and forms with select>option with Eliom (XHTML).

Have you some?
I cannot print a simple table...

--
       Architecte Informatique chez Blueline/Gulfsat:
    Administration Systeme, Recherche & Developpement
                                    +261 33 11 207 36

"ocaml_beginners"::[] Re: example for tables and forms with select/option

by Dario Teixeira-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi again,

> I am looking for soem examples (Pleac-like examples, not
> "documentation") on using tables and forms with select
> option with Eliom (XHTML).

...And here's an example with XHTML.M.tablex, as promised.
Note that the construction of XHTML tables with Ocsigen seems
overly complex at first sight, but it actually makes sense
in light of the XHTML standard, which requires the lists of
rows, of columns, etc, to have *at least one element*.
Hence why most constructors used in tables have the form
"cons el1 [el2; el3; ...]"...

Best regards,
Dario Teixeira

===============================================================

open XHTML.M

let main_handler sp () () =
        let table_head =
                XHTML.M.thead
                        (XHTML.M.tr (XHTML.M.th [pcdata "HA1"]) [XHTML.M.td [pcdata "HB1"]; XHTML.M.td [pcdata "HC1"]])
                        [
                        (XHTML.M.tr (XHTML.M.th [pcdata "HA2"]) [XHTML.M.td [pcdata "HB2"]; XHTML.M.td [pcdata "HC2"]]);
                        (XHTML.M.tr (XHTML.M.th [pcdata "HA3"]) [XHTML.M.td [pcdata "HB3"]; XHTML.M.td [pcdata "HC3"]]);
                        ]
        and table_foot =
                XHTML.M.tfoot
                        (XHTML.M.tr (XHTML.M.th [pcdata "FA1"]) [XHTML.M.td [pcdata "FB1"]; XHTML.M.td [pcdata "FC1"]])
                        [
                        (XHTML.M.tr (XHTML.M.th [pcdata "FA2"]) [XHTML.M.td [pcdata "FB2"]; XHTML.M.td [pcdata "FC2"]]);
                        (XHTML.M.tr (XHTML.M.th [pcdata "FA3"]) [XHTML.M.td [pcdata "FB3"]; XHTML.M.td [pcdata "FC3"]]);
                        ]
        and table_body_hd =
                XHTML.M.tbody
                        (XHTML.M.tr (XHTML.M.th [pcdata "XA1"]) [XHTML.M.td [pcdata "XB1"]; XHTML.M.td [pcdata "XC1"]])
                        [
                        (XHTML.M.tr (XHTML.M.th [pcdata "XA2"]) [XHTML.M.td [pcdata "XB2"]; XHTML.M.td [pcdata "XC2"]]);
                        (XHTML.M.tr (XHTML.M.th [pcdata "XA3"]) [XHTML.M.td [pcdata "XB3"]; XHTML.M.td [pcdata "XC3"]]);
                        ]
        and table_body_tl =
                [
                XHTML.M.tbody
                        (XHTML.M.tr (XHTML.M.th [pcdata "YA1"]) [XHTML.M.td [pcdata "YB1"]; XHTML.M.td [pcdata "YC1"]])
                        [
                        (XHTML.M.tr (XHTML.M.th [pcdata "YA2"]) [XHTML.M.td [pcdata "YB2"]; XHTML.M.td [pcdata "YC2"]]);
                        (XHTML.M.tr (XHTML.M.th [pcdata "YA3"]) [XHTML.M.td [pcdata "YB3"]; XHTML.M.td [pcdata "YC3"]]);
                        ];
                XHTML.M.tbody
                        (XHTML.M.tr (XHTML.M.th [pcdata "ZA1"]) [XHTML.M.td [pcdata "ZB1"]; XHTML.M.td [pcdata "ZC1"]])
                        [
                        (XHTML.M.tr (XHTML.M.th [pcdata "ZA2"]) [XHTML.M.td [pcdata "ZB2"]; XHTML.M.td [pcdata "ZC2"]]);
                        (XHTML.M.tr (XHTML.M.th [pcdata "ZA3"]) [XHTML.M.td [pcdata "ZB3"]; XHTML.M.td [pcdata "ZC3"]]);
                        ];
                ] in
        let my_table =
                XHTML.M.tablex ~thead:table_head ~tfoot:table_foot table_body_hd table_body_tl
        in Lwt.return
                (html
                (head (title (pcdata "")) [])
                (body [p [pcdata "Table:"]; my_table]))


let main_service =
        Eliom_predefmod.Xhtml.register_new_service
                ~path: [""]
                ~get_params: Eliom_parameters.unit
                main_handler