Diese Seite erklärt, wie man Eingabeformulare in Wikiseiten einbetten kann.
Eingabeformulare behandeln die Eingaben eigentlich nicht — dies Feature erlaubt einfach nur die Erzeugung von Formularen innerhalb einer Wikiseite. Die Auswertung von Formularen findet man in den Kochbüchern (s. u.).
Markup
Zwei Direktiven braucht man, um ein Formular zu beginnen und zu beenden:
(:input form "url" method:) ... (:input end:)
Die (:input form:)
-Direktive startet ein Formular, das Daten an url (optional action=url) mit der Methode method (optional method=method) sendet.
Wenn der Url weggelassen wird, wird die aktuelle Seite angenommen. Der Url muss in Anführungszeichen gesetzt sein, wenn er nicht über action= angegeben wurde.
Ein optionaler Name="Formularname"
kann angegeben werden, um das Formular zu benennen.
Man kann explizit action=url
oder method=get
angeben oder man benutzt sie als positionierte Parameter.
Wenn Ihre Site n=Gruppe.Seite
benutzt, um den Seitennamen anzugeben, dann erlaubt ein zusätzliches Feld (:input hidden name=n value={$FullName}:)
dem Formular, die Daten an die aktuelle Seite zu senden als Alternative zur Angabe des vollständigen URLs in action=url
.
Die (:input end:)
-Direktive schließt das aktuelle Formular.
Anmerkung: Dies Feature garantiert nicht, dass die Ausgabe des Formulars korrektes HTML ist -- es nimmt an, dass der Autor ein bisschen was von der Sache versteht. (:input form:)
und (:input end:)
sollten nicht innerhalb von Tabellen erscheinen und alle Formularfelder und Kontrollelemente sollten innerhalb des (:input form:)
... (:input end:)
-Blockes stehen.
Standardeingabeelemente
Die Standardeingabeelemente sind
(: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 tel 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 [=value=]
rows=n cols=n:)
(:input file name label:)
(:input image name "src" alt:)
(:input reset name label:)
(:input button name value:)
(:input submit name value:)
wobei name und value in der HTML-Syntax geschrieben werden: name="addr" value="808 W Franklin".
Für die meisten Elemente hat die Direktive die Form:
(:input type name value parameter=value:)
wobei type der Typ des Eingabeelementes (Beschreibung unten), name der Name des Elements und value der Anfangswert ist. Parameter werden benutzt, um die zusätzlichen Attribute des Elements anzugeben. Wenn value Leerzeichen enthält, gehört es in Anführungszeichen. Wenn es Zeilenumbrüche enthält (Textarea, hidden Elements), schließen Sie es in [=...=]
ein.
Das Folgende erstellt beispielsweise ein Texteingabefeld mit eine Größe von 30 Zeichen.
(:input text authorid "Jane Doe" size=30:) |
|
Ein Autor kann auch den Namen und den Wert direkt angeben mit name=
- und value=
-Attributen.
(:input text name=authorid value="Jane Doe" size=30:) |
|
Für das Textarea-Element kann seit PmWiki 2.2.0beta45 ein Wert gesetzt werden. Schließen Sie den Wert in [=...=]
ein, wenn er Leerzeichen oder Zeilenumbrüche enthält.
Das submit
-Element wird häufiger geschrieben als:
(:input submit value=label:)
Hier ist ein komplexeres Beispiel, etwa für einen Loginprompt:
(:input form "http://www.example.com":) (:input hidden action login:) || Name:||(:input text username:) || || Passwort:||(:input password password:)|| || ||(:input checkbox terms yes "Bedingungen akzeptiert":) || || ||(:input submit value="Anmelden":) || (:input end:) |
Generelle Formularfeldattribute
(:input ... focus=1:)
Setzt manfocus=1
, erhält das Element den anfängliche Focus, wenn das Formular das erste Mal erscheint.- Die folgenden erweiterten HTML-Attribute werden unterstützt:
name, value, id, class, rows, cols, size, maxlength, action, method, accesskey, tabindex, multiple, checked, disabled, readonly, enctype, src, alt, title, required, placeholder, autocomplete, min, max, step, pattern
. Für eine weiterführende Beschreibung, siehe ihre Entsprechungen unter w3c reference: HTML5 form attributes (nicht alle von ihnen können für jedes Formularelement eingesetzt werden). - Für Checkboxen und Radiobuttons wird der Text des "label"-Attributs hinter dem Eingabeelement als ein Label-Element angezeigt. Ein Klick darauf aktiviert oder deaktiviert das Eingabeelement. Das Label darf nur reiner Text sein (ohne Inlineformatierung wie fett oder Verweise).
- Zusätzlich zu den vorgegebenen Attributen können Sie selbst erstellte data-Attribute wie
data-some-variable=value
oderdata-other="Some data"
einsetzen (benutzbar in eigenen JavaScripts, CSS oder einigen Libraries). Das Attribut muss mit "data-" beginnen und darf nur lateinische Kleinbuchstaben [a-z] und Bindestriche [-] enthalten.
Das kann in der config.php-Datei mit der Zeile
abgeschaltet werden.$EnableInputDataAttr
= 0; - Alle nicht unterstützten Attribute im Wiki-Markup werden nicht in der HTML-Ausgabe erscheinen.
(:input select ... :)
Die Basis für eine Auswahlbox ist eine Liste von Optionen:
(: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:) |
Die Werte können (ohne Parameternamen) durch ihre Position angegeben werden.
(:input select abc 1 alpha :)
Sie können die Größe der Auswahlbox angeben:
(:input select abc 1 alpha size=3 :)
Sie können eine Auswahlbox für Mehrfachwahlen angeben (nur das erste Item muss die Attribute "size=3 multiple" haben):
(:input select abc 1 alpha size=3 multiple:)
Damit ein Element ausgewählt erscheint, benutzen Sie: selected=selected
:
(:input select abc 2 beta selected=selected:)
Anmerkung: Damit zwei Auswahlboxen nebeneinander erscheinen, müssen Sie ihnen nicht nur verschiedene name=
-Parameter geben, Sie müssen zwischen sie auch noch einen Trenner setzen, d. h. ein Zeichen, ein
oder wenigstens eine Nullsequenz [==]
.
(: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:) |
Beachten Sie, dass in der HTML-Ausgabe nur die Attribute label
, value
und selected
auf das <option>
-HTML-Tag angewendet werden. Alle anderen Attribute einschließlich name
, id
, class
und title
werden auf das umschließende <select>
-HTML-tag angewendet, und spätere Definitionen ersetzen die früheren.
See Also
- Cookbook:Input Default
- Cookbook:Form Validation
- Cookbook:Form Extensions
- Cookbook:Input Forms and JavaScript
Compatible recipes:
Übersetzung von PmWiki.Forms, Originalseite auf PmWikiDe.Forms — Backlinks
Zuletzt geändert: | PmWikiDe.Forms | am 17.03.2019 |
PmWiki.Forms | am 26.10.2023 |