Section: Affichage simple des données
« Gérer un formulaire après soumission | ^ jForms : des formulaires automatiques | Sécurité dans les formulaires » |
− Table des matières
Il est possible d'afficher, non pas le formulaire en lui-même, mais seulement les données du formulaire. Cela peut être utile pour afficher le récapitulatif des données saisies par exemple.
Affichage sans personnalisation ¶
Pour les développeurs pressés, il existe un plugin de template qui affiche tout
tout seul : formdatafull
. Vous ne pouvez pas contrôler la façon dont sont
affichés les libellés et les valeurs. Vous devez passer l'objet formulaire à ce
plugin.
Voici un exemple dans le contrôleur :
$form = jForms::get('monform');
$tpl = new jTpl();
$tpl->assign('formulaire', $form);
Et dans le template :
<h1>Le formulaire</h1>
<p>Vous avez saisie les valeurs suivantes:</p>
{formdatafull $formulaire}
Les libellés et les valeurs du formulaires s'affichent dans un tableau.
Affichage personnalisé ¶
Comme pour l'affichage du formulaire, il est possible de mieux contrôler l'affichage, en particulier les balises générées, et donc de pouvoir définir les endroits où les champs seront placés.
Vous pouvez utiliser les plugins {formcontrols}
et {ctrl_label}
que vous
connaissez déjà, ainsi que {ctrl_value}
à utiliser à la place de {ctrl_control}
:
<h1>Le formulaire</h1>
<p>Vous avez saisie les valeurs suivantes:</p>
<table>
{formcontrols $formulaire}
<tr>
<th scope="row">{ctrl_label}</th>
<td>{ctrl_value}</td>
</tr>
{/formcontrols}
</table>
Notez que vous n'avez pas besoin d'utiliser le plugin {form}
.
Il est possible aussi de ne pas utiliser la boucle {formcontrols}
, afin
d'afficher les valeurs où on veut et dans l'ordre que l'on souhaite, avec
toujours les plugins {ctrl_label}
et {ctrl_value}
en leur indiquant le
nom du contrôle à afficher. Mais il faut alors les utiliser à l'intérieur d'un
plugin {formdata}
.
<h1>Le formulaire</h1>
<p>Vous avez saisi les valeurs suivantes :</p>
<table>
{formdata $formulaire}
<tr>
<th>{ctrl_label 'name'}</th>
<td>{ctrl_value 'name'}</td>
</tr>
<tr>
<th>{ctrl_label 'address'}</th>
<td>{ctrl_value 'address'}</td>
</tr>
{/formdata}
</table>
{ctrl_value}
peut accepter un paramètre additionnel, qui doit être un chaîne permettant
de formater la valeur. Le formatage est fait par la fonction sprintf
.