[racket] Web input-string with pre-fllled value
----- Original Message ----
> From: Jay McCarthy <jay.mccarthy at gmail.com>
> I'm interested in figuring out what is overwhelming and alleviating
> it. Unless you're overwhelmed by its featurefullness ;)
Yes - there's just a lot to absorb all at once. The example blog for Racket is
very good. There's things that puzzle me, and I think it's a matter of time
before I "get" some of the concepts involved.
I'm starting to write up some of my findings. For example, it took me a little
while to crack tables, and I've started to blog about it:
http://alt-mcarter.blogspot.com/2010/08/creating-tables-in-racket-webserver.html
I've created a little VAT (Value Added Tax) calculator, which is still
incomplete, but I have enough understanding of the framework to complete:
#lang web-server/insta
(require web-server/formlets)
(define init-input-string (λ(val)
(to-string
(required
(text-input #:value
(string->bytes/locale
val))))))
(define new-post-formlet
(formlet
(div "Amount: " ,{input-string . => . amount}
(p "")
"VAT Rate: " ,{(init-input-string "17.5") . => . rate}
(p "still in form"))
(values amount rate)))
(define (render-vat-page amount rate request)
(local [(define (response-generator make-url)
`(html (head (title "My Calculator"))
(body
(h1 "Simple VAT calculator")
(form ([action
,(make-url insert-vat-handler)])
,@(formlet-display new-post-formlet)
(input [(type "submit") (value "Calculate")]))
(p ,amount)
(p ,rate))))
(define (insert-vat-handler request)
(define-values (amount rate)
(formlet-process new-post-formlet request))
(print "insert-post-handle")
(print amount)
(render-vat-page amount rate (redirect/get)))]
(send/suspend/dispatch response-generator)))
; start: request -> html-response
(define (start request)
(render-vat-page "0.0" "17.5" request))
I'm a little puzzled as to whether I need the new-post-formlet needs to be
separate from the form. I need to create a table of my results, and I'm now more
confident as to how to do this.
I'm probably way way overambitious at this stage, but there almost seems to be a
component model itching to get out - for example, as you might program with
Visual Basic with an interface, state, and event code. I'm just imagining in my
head that one could perhaps write some kind of unified model which would work
for a web site, a traditional GUI application, or even as a console program.
Like I say, that'd be biting off more than I can chew just now.