On Tue, Dec 27, 2011 at 2:20 PM, keyd...@gmx.de <keyd...@gmx.de> wrote: > Jay, > > many thanks for the answer, that already helps a lot! > > Just one thing - the generated html does not have a "value" attribute, but > instead uses a different "name" for every radio button - how can I get the > radio buttons identified as a group by the browser, such that only one button > can be selected?
Such radio groups have not yet been implemented, it should be straight-forward to do so though. You could look at the code in https://github.com/plt/racket/blob/master/collects/web-server/formlets/input.rkt around multiselect-input for a way to do it. Or you could just write some test cases for me and I'll do it. > > In fact, looking at the generated html as well as the input given to > formlet-process, I do not see where the "value" passed to the radio > constructor is used? Ya, you're right, it gets thrown out. I'll fix that. Jay > > Thanks again, > Sigrid > > > > > > Am 26.12.2011 um 22:28 schrieb Jay McCarthy: > >> Here is a short example: >> >> #lang racket >> (require racket/promise >> web-server/http/request-structs >> web-server/formlets >> net/url) >> >> (define some-formlet >> (formlet >> (div "Checked Radio" >> ,{(default #"default" (radio #"checked-radio" #t)) . => . cr} >> "Not-Checked Radio" >> ,{(default #"default" (radio #"unchecked-radio" #f)) . => . ncr} >> "Checked Checkbox" >> ,{(default #"default" (checkbox #"checked-checkbox" #t)) . => . cc} >> "Not-Checked Checkbox" >> ,{(default #"default" (checkbox #"uncheck-checkbox" #f)) . => . ncc}) >> (list cr ncr cc ncc))) >> >> (formlet-display some-formlet) >> >> (define (show-example bs) >> (formlet-process some-formlet >> (request #"GET" >> (string->url "http://localhost") >> empty >> (delay bs) >> #f >> "host" >> 8943 >> "client"))) >> >> (show-example empty) >> (show-example (list (binding:form #"input_0" #"true"))) >> (show-example (list (binding:form #"input_0" #"true") >> (binding:form #"input_1" #"false"))) >> (show-example (list (binding:form #"input_0" #"true") >> (binding:form #"input_1" #"false") >> (binding:form #"input_2" #"true") >> (binding:form #"input_3" #"false"))) >> >> It would be good to create a higher-level formlet that rendered to a >> checkbox or radio button that would return a boolean or a selection, >> like the select formlets do. >> >> Jay >> >> On Mon, Dec 26, 2011 at 12:02 PM, keyd...@gmx.de <keyd...@gmx.de> wrote: >>> Hi, >>> >>> it's me again, and whereas I don't know how dumb I am I sure might have >>> been a bit lazy :-; >>> >>> Unfortunately, even after taking a bit more time, I don't know how it >>> works. Lastly, I've been trying this, which displayed fine: >>> >>> (define f-choose-db >>> (let ((o (radio #"orcl" #t)) >>> (r (radio #"rndba" #f))) >>> (formlet >>> (div "orcl" ,(o . => . orcl) >>> "rndba" ,(r . => . rndba)) >>> (values orcl rndba)))) >>> >>> But when I use formlet-process to extract the result (just clicking submit, >>> leaving the checked box checked), I get the values #<binding:form> and >>> #f... (and see input_0=on in the browser). >>> >>> Also I was trying to add a binding name to the radio function calls >>> themselves, e.g. (radio #"xx" #f . => . myname), but this throws a syntax >>> error. >>> >>> Could anyone offer a hint what I'm doing wrong here? >>> >>> (BTW this list has the most helpful people & inspiring content of all >>> mailing lists I know of , and I'm not writing this in order to get a nice >>> answer :-) ) >>> >>> Ciao >>> Sigrid >>> >>> >>> ____________________ >>> Racket Users list: >>> http://lists.racket-lang.org/users >> >> >> >> -- >> Jay McCarthy <j...@cs.byu.edu> >> Assistant Professor / Brigham Young University >> http://faculty.cs.byu.edu/~jay >> >> "The glory of God is Intelligence" - D&C 93 > -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://faculty.cs.byu.edu/~jay "The glory of God is Intelligence" - D&C 93 ____________________ Racket Users list: http://lists.racket-lang.org/users