The 'n' argument to the lambda is the number of form elements so far, and make-input* allocates another one, so this thing's name should be (format "input_~a" n) or something like that.
Jay On Thu, Dec 29, 2011 at 12:59 AM, Shad Gregory <captsh...@austin.rr.com> wrote: > Sigrid, > > Here's something that worked for me: > > (define (radio-group values name) > (make-input* > (lambda (n) > `(div > ,@(for/list ((value values)) > (list 'div > (list 'input > (list > (list 'name name) > (list 'type "radio") > (list 'value (bytes->string/utf-8 value)))) > (bytes->string/utf-8 value))))))) > > > (define radio-button-formlet > (formlet > (div > ,{(default #"default" (radio-group (list #"Chocolate" #"Vanilla" > #"Strawberry") "flavor")) . => . ci} ) > (list ci))) > > Hope this helps, > > Shad > > > On 12/27/2011 3:20 PM, 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? >> >> 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? >> >> 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 >> >> >> ____________________ >> 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 ____________________ Racket Users list: http://lists.racket-lang.org/users