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.