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 'Special:RunQuery' page, which displays a form in a manner similar to 'Special:FormEdit', 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 contain one or more Semantic MediaWiki inline queries, to query data using values 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 Special:RunQuery. 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 "query form at top" 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: Special:RunQuery/

However, you can also create more complicated links, or link to the form as a popup window, using the  parser function. For more information, see Linking to query forms.

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:

Preloading data in the query
In case query data needs to be pre-loaded, the 'Special:RunQuery' should follow the convention Special:RunQuery/form-name?template-name[item-name]=value as in the example http://discoursedb.org/wiki/Special:RunQuery/Item_query?ItemQuerier[author]=Joe. The construction [item-name] might cause a problem in connection with the wiki markup therefore [ and ] can be replaced with either %5B and %5D, or &amp;#91; and &amp;#93;.

You can also link to 'Special:RunQuery' where the query has already been run. To do that, just add "wpRunQuery=true" to the query string; see here for an example.

A more comfortable way to pre-loaded query data into 'Special:RunQuery' is to use the #queryformlink parser function which also should solve issues in regards to wiki markup used. Further information can be found at enhancing query forms.