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, [email protected] 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, [email protected]<[email protected]>  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<[email protected]>
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


____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to