## Validating and Processing Form Submissions

Templating System : User Guide

Important Note: The `ad_form` function has been written to be a more consistent, easier way to create and manage dynamic forms. Behind the scenes it uses the templating system's form builder, but it hides much of its complexity. You should definitely look at it and at the pages that use it in the survey package.

The templating system provides a simple infrastructure for validating form submissions. The typical life-cycle of a form is as follows:

1. The user makes the initial request for a page containing a form. The code associated with the page creates the form (with the `form create` command) and populates it with elements.
2. The developer may use the `form is_request` command to encapsulate any special initialization (for example, setting a primary key value for an Add form, or retrieving current values for an Edit form).
3. The `formtemplate` tag is used to enclose the form template. This tag is responsible for generating the appropriate HTML `FORM` tag in the final output. The `formtemplate` tag also embeds a special hidden variable in the form for the purpose of identifying incoming submissions.
4. By default, the `formtemplate tag` sets the `ACTION` attribute of the `FORM` tag to the same URL as that of the form itself. The submission is therefor processed within the framework of the same code that was used to create the form.

templating@arsdigita.com