Extension:Page Forms/Creating query forms

Forms can also be used for querying, as opposed to adding or editing data. To do so, use the  page, which displays a form in a manner similar to , but with no associated 'target page'. Instead, when the user submits the form by hitting the "Run query" button, they see what the template looks like when displayed with the values they entered.

The template that the form uses should most likely contain one or more queries (using Semantic MediaWiki inline queries, Cargo queries, External Data queries, etc.) to query data using values that the user entered. You can see an example of a query form here.

The "Run query" button
By default, a button called "Run query" shows up at the bottom of forms if they are accessed via. You can change the location and text of this button, using the tag " " (or " ", etc.) within the form definition.

See Defining forms#"standard input" tag for more information.

Query form at top
If you add the parameter " " to the  tag, the query input field will show up at the top of the results page, instead of the bottom.

Creating links to query forms
Once a query form has been created, you can link to it using syntax that looks like this:

However, the preferred solution, because it's easier and more powerful, is to use the  parser function. A basic call to that function would look like:

Here's the complete syntax of :

These parameters are almost identical to the ones used by ; for a full explanation of the parameters, see Using #formlink.

Embedding query forms
You can also embed a query form within another page. To do that, add the following in a page where you want the query form to appear:

You can similarly embed multiple Special:RunQuery forms in the same page.

Preloading data in the query
In case query data needs to be pre-loaded, the  should follow the convention

For example, like this:

The construction   might cause a problem in connection with the wiki markup, and therefore the square brackets—  and  —can be replaced with either   and , or   and  ).

Finally, make sure that the case in the query string matches the declaration in the form (e.g.,  must match   and   must match.

Alternatively, you can preload data by using the  parameter for form fields.

Add “_run”
The above technique will produce a preselect value in the respective form field, but the user still has to press the query button for results. If you want the results preloaded as well, you have to add " " to the query string.
 * (see life example)

As before, the recommended way to link to such a page internally is with, which would look as follows: