V. Passer des paramètres par code d'une action à l'autre▲
Comme étape suivante, nous allons voir comment passer des paramètres d'une action à l'autre.
Ainsi, lorsque vous affichez les résultats de votre action, vous aimeriez qu'elle affiche un lien vers une étape suivante de l'information que vous voulez fournir. Dans notre exemple, nous aimerions que la recherche que nous avons faite sur Ornella Muti (simple listing des noms, prénoms, lieux qui sont dans le SGBD) lance une autre action de notre ISAPI qui elle affiche le détail sur elle (avec sa photo éventuellement:)
Nous allons donc créer une action supplémentaire qui s'appellera « detail ». Dans cette action, nous pourrions coder l'affichage de toutes les données. Il suffit de faire comme dans l'action précédente (Searchname).
Mais c'est dans le code de cette action précisément que nous allons changer quelque chose. Nous allons en effet rajouter un lien qui renverra vers la nouvelle action.
Et pour faire cela, rien de plus simple, il suffit d'ajouter une référence (A HREF) à notre nouvelle action Detail. Ainsi, quand l'utilisateur cliquera sur ce lien, il lancera cette nouvelle action.
Notre code du chapitre précédent devient :
//la partie début du lien de notre affichage
S.Add('<A HREF="/scripts/myisapi.dll/detail?id='
+Query1.FieldByName('id_nom'
).AsString+'">'
);
//la partie qui sera effectivement affichée
S.Add('Query1.FieldByName('
Nom').AsString+'
');
//La partie fin du lien;
S.Add('</A>'
);
Il nous suffira alors de récupérer dans la nouvelle action Detail le paramètre passé (ici request.contentfields.values['id_nom']) et de faire une nouvelle requête sur la valeur de id_nom pour afficher ensuite selon la méthode décrite dans le chapitre précédent tous les champs de l'enregistrement. On peut ainsi passer des paramètres lors de chaque action. Ceci est très important, car cette méthode permet d'éviter de déclarer des variables globales qui sont les ennemies jurées de la programmation d'ISAPI
Ce paramètre n'est pas forcément un paramètre visible d'une form (dialogue texte, checkbox, liste déroulante, etc.). Vous pouvez très bien rajouter et gérer des champs cachés. La formulation :
<input
type
=
"hidden"
name
=
"FIRSTNAME"
value
=
"+Request.QueryFields.Values['MonParametreRecupere']+'"
>
Vous pouvez ainsi passer d'une action à l'autre n'importe quel paramètre invisible à l'utilisateur. D'autant plus si vous utilisez la méthode Post qui n'affiche pas ces paramètres.