PmWiki / Forms
This page explains how you can embed input forms into wiki pages. Input forms don't actually handle processing of the form data -- the feature simply allows creation of forms inside wiki pages. Forms processing can be found in the Cookbook (see below). MarkupTwo directives are used to begin and end forms: (:input form "url" method:) ... (:input end:) The If your site uses ?n=Group.Page to specify the pagename then having a field The Note that this feature doesn't ensure that the form output is correct HTML -- it assumes the author knows a little bit of what he or she is doing. Notably, (:input form:) and (:input end:) shouldn't appear inside tables, and all form fields and controls should be inside an (:input form:)...(:input end:) block. Standard input controlsThe standard input controls are: (:input text name value size=n:)
(:input hidden name value:)
(:input password name value:)
(:input search name value:)
(:input number name value min=x max=y step=z:)
(:input email name value:)
(:input url name value:)
(:input date name value:)
(:input radio name value label checked=checked:)
(:input checkbox name value label checked=checked:)
(:input select name value label:)
(:input default default-name default-value:)
(:input textarea name Where name and value are in the HTML syntax: name="addr" value="808 W Franklin". For most controls the markup has the form: (:input type name value parameter=value:) where type is the type of input element (described below), name is the name of the control, value is its initial value, and parameters are used to specify additional attributes to the control. If value contains spaces, enclose it in quotes; if it contains newlines (for textarea and hidden elements), enclose it in For example, the following creates a text input control with a size of 30 characters:
For convenience, an author can also specify name and value arguments directly using
For the The (:input submit value=label:) Here's a more complete example, e.g., for a login prompt:
General form field attributes
|
(:input form:) (:input select name=abc value=1 label=alpha :) (:input select name=abc value=2 label=beta :) (:input select name=abc value=3 label=gamma :) (:input submit:) (:input end:) |
The values can be specified positionally:
(:input select abc 1 alpha :)
We can specify the size of the selection box:
(:input select abc 1 alpha size=3 :)
You can specify a multiple select box (only the first item needs to have "size=3 multiple" attributes):
(:input select abc 1 alpha size=3 multiple:)
To have an element selected, use selected=selected
:
(:input select abc 2 beta selected=selected:)
Note that to have two select boxes inline, not only should you give them different name=
parameters, but also place a separator, like a character,
or even the null sequence [==]
between them:
(:input form:) (:input select name=FIRST value=1:)(:input select name=FIRST value=2:)[==] (:input select name=SECOND value=3:)(:input select name=SECOND value=4:) (:input end:) |
Note, in the HTML output, only the attributes label
, value
and selected
are applied to the <option>
HTML tag. Any other attributes, including name
, id
, class
and title
are applied to the wrapping <select>
HTML tag, and later definitions replace previous ones.
Compatible recipes:
This page may have a more recent version on pmwiki.org: PmWiki:Forms, and a talk page: PmWiki:Forms-Talk.