Did you know ... | Search Documentation: |
Pack weblog -- prolog/html_form/html_form.pl |
This module handles the common web task of creating a form, validating the input, and, if not valid, redirecting the user back to the form with error messages over the offending elements
So, say the form is
name: [ ] age: [ ] (Submit)
The user enters their name but leaves their age blank.
they next see
name: [Sally Smith] You need to enter an age: age: [ ] (Submit)
They enter their age and click submit. They land on a landing page:
Thank you for your personal info. We'll be sure to enter it in our database and as a bonus we'll make sure it gets entered in many others throughout the globe. (Home)
To implement this example we would define a handler
:- http_handler(root(spamform) , spam_page_handler, [id(spamform)]). spam_page_handler(Request) :- validated_form( reply_html_page( web_style, [title('A little problem....')], login_form(Request)), reply_html_page( web_style, [title('Thanks'), spam_landing_page_content(Request))).
and then in login_form you do something like
login_form(Request) --> .... form([action='/spamform', method=POST], [ \(html_form:error_message([for=name], p([class=oops], 'you have to type a name'))), \(html_form:form_field(Request, length_input_minmax(3, '>'), input([name=name, type=textarea], []))), \(html_form:error_message([for=age], p([class=oops], 'Problem with age'))), \(html_form:form_field(Request, numeric_minmax(14, '>'), input([name=age, type=textarea], []))) ....]
The following predicates are exported, but not or incorrectly documented.