At line 1 added 107 lines |
!!WikiForms Form Plugin Example |
|
This page uses the [WikiForms] plugins to provide parameters to the CurrentTimePlugin, |
and displays the result. |
|
[{TableOfContents}] |
|
!Giving Defaults |
|
The first item, hidden in normal WikiPage viewing, looks like this: |
{{{ |
[{FormSet form='testform' format='EEE, d MMM yyyy HH:mm:ss Z' rd1='r2'}] |
}}} |
[{FormSet form='testform' format='EEE, d MMM yyyy HH:mm:ss Z' rd1='r2'}] |
|
The FormSet plugin sets the default date format for a form field ''format'' in form ''testform''. (It also sets a radio button default value - just for demonstration, no real functionality.) |
|
!Form Output and Error Messages |
|
The second item, also hidden, looks like this: |
{{{ |
[{FormOutput form='testform' handler='CurrentTimePlugin' populate='handler'}] |
}}} |
|
It specifies that the ''CurrentTimePlugin'', which comes in the stock JSPWiki distribution, should be used to generate |
some output to display here. While the output is usually built in response to a POST from a form called ''testform'', the ''populate'' attribute here hints the plugin that we want default information even if no post has been made. This is |
what the output looks like: |
|
%%(margin:auto;text-align:center;padding:4px;background:#eee;border:1px inset) |
[{FormOutput form='testform' handler='CurrentTimePlugin' populate='handler'}] |
%% |
|
|
!Opening the Form |
|
The third element starts the actual HTML form called ''testform'': |
{{{ |
[{FormOpen form='testform'}] |
}}} |
[{FormOpen form='testform'}] |
|
|
!Form Fields |
|
We'll use a text field to provide the format of CurrentTimePlugin's output. Notice that the name of this field is ''format'' - the name of CurrentTimePlugin's relevant parameter. This value is passed straight to CurrentTimePlugin on submit: |
{{{ |
Enter the time format string: [{FormInput type='text' name='format'}] |
}}} |
%%(margin:auto;text-align:center;padding:4px;background:#eee;border:1px inset) |
Enter the time format string: [{FormInput type='text' name='format'}] |
%% |
|
The rest of the form merely demonstrates some other HTML form elements. The don't work with CurrentTimePlugin, but you'll probably want them in your special form handler plugins. |
|
Select list: |
{{{ |
[{FormSelect name='sel1' value='fee;*fie;foe;foo'}]\\ |
}}} |
|
(Notice, here, the asterisk; this denotes the default value to select. The separator character and the default character can be overridden - check [FormSelect] for more information.) |
|
%%(margin:auto;text-align:center;padding:4px;background:#eee;border:1px inset) |
[{FormSelect name='sel1' value='fee;*fie;foe;foo'}]\\ |
%% |
|
Textarea: |
{{{ |
[{FormTextarea name='area1' value='Write your own text here' rows=8 cols=40}] |
}}} |
|
%%(margin:auto;text-align:center;padding:4px;background:#eee;border:1px inset) |
[{FormTextarea name='area1' value='Write your own text here' rows=8 cols=40}] |
%% |
|
!Submitting |
|
Before finishing up, we need to add a submit button: |
{{{ |
[{FormInput type='submit' name='x' value='Update'}] |
}}} |
%%(margin:auto;text-align:center;padding:4px;background:#eee;border:1px inset) |
[{FormInput type='submit' name='x' value='Update'}] |
%% |
|
|
!Closing the Form |
And, finally, an invisible closing element to denote that this form has ended: |
{{{ |
[{FormClose}] |
}}} |
[{FormClose}] |
|
|
---- |
|
Go ahead, click on ''Update'', and notice how your format changes and selections are retained. |
|
---- |
|
!!Synopsis: |
|
* (Optional) Start with the ''FormSet'', give defaults |
* (Optional) If the form is supposed to give out information, add an ''output'' |
* (Mandatory) ''open'' the form |
* (Optional) add any text/select elements |
* (Mandatory) add a ''submit'' |
* (Mandatory) ''close'' the form |