Le DIML Vectoriel : Exemple 1. Le remplissage d'un SELECT. |
|
Scénario
Il est très courant dans des sites Web dynamiques, d'avoir à remplir des listes de choix à partir d'extractions de bases de données, plus ou moins directement (Les données de la base peuvent être parfois altérées ou filtrées par des données de contexte). L'injection vectorielle suppose que les données constituant le remplissage de la liste sont déjà disponibles (par exemple, par une invocation antérieure). Dans ce cas, il s'agit de couleurs, encodées par un numéro entier (code de choix).
Les données
<%%LISTE_COULEUR§0%%> rouge
<%%LISTE_COULEUR§1%%> vert
<%%LISTE_COULEUR§2%%> bleu
<%%LISTE_COULEUR§3%%> jaune
<%%LISTE_COULEUR§4%%> violet
<%%LISTE_COULEUR§5%%> brun
<%%CODE_COULEUR§0%%> 0
<%%CODE_COULEUR§1%%> 1
<%%CODE_COULEUR§2%%> 2
<%%CODE_COULEUR§3%%> 3
<%%CODE_COULEUR§4%%> 4
<%%CODE_COULEUR§5%%> 5
Le motif de remplissage
<TEMPLATE ID="OPTION">
<OPTION VALUE="<%%CODE_COULEUR[]%%>"><%%LISTE_COULEUR[]%%></OPTION>
</TEMPLATE>
Le motif appelle les matrices CODE_COULEUR et LISTE_COULEUR pour réaliser les 6 options nécessaires.
La réalisation du motif
Le motif se réalise par appel d'une syntaxe itérative, par exemple :
<%%OPTION[6]%%>
qui appelle 6 itérations du motif OPTION:
<OPTION VALUE="0">rouge</OPTION>
<OPTION VALUE="1">vert</OPTION>
<OPTION VALUE="2">bleu</OPTION>
<OPTION VALUE="3">jaune</OPTION>
<OPTION VALUE="4">violet</OPTION>
<OPTION VALUE="5">brun</OPTION>
Notez que, par la réalisation de ce motif :
- L'indice automatique du template OPTION (<%%OPTION§I%%>)a tourné et vaut 6.
- Les indices automatiques des tableaux <%%LISTE_COULEUR§I%%> et <%%CODE_COULEUR§I%%> ont tourné et valent 6.
- Continuer à réaliser des motifs OPTION conduirait à l'écriture de lignes fausses:
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
<OPTION VALUE=""></OPTION>
précédent
sommaire
suivant
All material is copyleft V.G. FREMAUX (EISTI France) 1999 to 2003 except explicitly mentioned
|