Displaying the form

A file formulaires/joli.html is called from a template file using the syntax #FORMULAIRE_JOLI, which then calls and displays the form.

The HTML of the form follows a standard format for all SPIP forms. The fields of the form are surrounded in a list of elements using ul/li HTML markup.

  1. <div class="formulaire_spip formulaire_demo">
  3. <form action="#ENV{action}" method="post"><div>
  5. <ul>
  6. <li class="editer_la_demo obligatoire">
  7. <label for="la_demo">La demo</label>
  8. <input type='text' name='la_demo' id='la_demo' value="#ENV{la_demo}" class="text" />
  9. </li>
  10. </ul>
  11. <p class="boutons"><input type="submit" class="submit" value="<:pass_ok:>" /></p>
  12. </div></form>
  13. </div>


For the form to work properly, the action attribute must be provided by the #ENV{action} variable which is automatically calculated by SPIP. In the same fashion, the #ACTION_FORMULAIRE{#ENV{action}} tag must be present, as it calculates and adds the security key which will be automatically verified when the form is received.

A few comments:
The form is surrounded by a CSS class called formulaire_spip and by a second with its own name, in this case formulaire_demo. The name can be recovered more easily using the context function: #ENV{form} (or directly with #FORM), which could generate: <div class="formulaire_spip formulaire_#FORM">.
The <li> mark-up tags are assigned CSS classes of editer_xx, where xx is the field name, and possibly the obligatoire class to indicate (visually) that this field must be provided before submitting the form.

  • The input tags are assigned a CSS class appropriate to the each field type (to remediate a deficiency in Internet Explorer with CSS that does not understand input[type=text])
  • The submission buttons are framed with a CSS class of boutons

Easily employing AJAX

Surrounding the form’s tag with an "ajax" CSS class tells SPIP to use AJAX, thereby making it possible to reload only the form and not the whole page.

  1. <div class="ajax">
  3. </div>


Author Mark Baber Published : Updated : 01/06/10

Translations : English, Español, français