Forms-RequiredFields
This form simply provides for entering a name in a field and then validates that the field had something in it. It provides an error message if the field is not filled in and a congratulatory message if the field was filled in. See HERE for a working version of this simple form.
Note that this page gives a description of the entire form. Other pages in this section of WikiSh documentation will focus in on only "the interesting stuff" which varies from form to form.
{(wikish_form QUICKFORM PROCESS)} {(wikish source {$FullName}#validate)} Please enter your name: (:input text name:) (:input submit save Save:) (:input end:) (:if false:) [[#validate]] if test -z ${save} # the user didn't press the "save" button then exit fi # # After this comes "the interesting stuff" # if test -z ${name} # if name is blank then echo "%red% Name is a required field! Please try again.%%" else echo "%green% Well done, ${name}! You entered your name!%%" fi # # Here ends "the interesting stuff" # [[#validateEnd]] (:ifend:) (:messages:)
The first line (below) is just a quick way to get your form set up to validate to the current page:
{(wikish_form QUICKFORM PROCESS)}
The second line (below) tells wikish that you want to run the validation script contained in the #validate section on this page:
{(wikish source {$FullName}#validate)}
Lines 3-5 (below) use vanilla pmwiki forms to set up your form:
Please enter your name: (:input text name:) (:input submit save Save:) (:input end:)
The lines between (:if false:)
and (:ifend:)
are the actual wikish script used to validate the form. Note the markup [[#validate
]]
and [[#validateEnd
]]
which define the section referenced in the 2nd line.
if test -z ${save} # the user didn't press the "save" button then exit fi
if test -z ${name} # if name is blank then echo "%red% Name is a required field! Please try again.%%" else echo "%green% Well done, ${name}! You entered your name!%%" fi
The final line, (:messages:)
, simply provides a place where wikish messages can be displayed if need be. Normally it won't be used, but it's a good idea to have it in a visible location on any page which runs a wikish script.