/
affichage-donnees.gtw
74 lines (50 loc) · 2.41 KB
/
affichage-donnees.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
~~LANG:EN@enman:jforms/data-display~~
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 :
<code php>
$form = jForms::get('monform');
$tpl = new jTpl();
$tpl->assign('formulaire', $form);
</code>
Et dans le template :
<code html>
<h1>Le formulaire</h1>
<p>Vous avez saisie les valeurs suivantes:</p>
{formdatafull $formulaire}
</code>
Les libellés et les valeurs du formulaires s'affichent dans un tableau.
===== Affichage contrôlé =====
Comme pour [[/jforms/affichage|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} :
<code html>
<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>
</code>
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} (disponible depuis la 1.0.1, sinon utilisez le plugin form dans les versions précédentes, même si c'est moins adapté).
<code html>
<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>
</code>