Introduction aux Fonctions Les procédures ASP, JScript et VBScript par Django (Oznog) Blais, Trucsweb (1er Novembre 1999)
Tout sur les fonctions ASP. Une procédure est un groupe de commande qui effectue une tâche spécifique et qui peut retourner une valeur. Vous pouvez définir vos propres procédures afin de simplifier votre code en réutilisant des sections de code redondant. Si vous faite le même traitement plusieurs fois dans votre code, par exemple un calcul qui revient souvent, vous pouvez créer une procédure pour cette tâche que vous pourrez réutiliser à tout moment.
Vous pouvez mettre cette
procédure dans le même document .asp qui l'appelle ou vous pouvez mettre vos procédures
communes dans un fichier partagé en utilisant la directive #INCLUDE pour
inclure vos procédures dans d'autres fichiers .asp qui appelle la procédure. Une
bonne alternative est " d'encapsuler " cette tâche dans une composante COM. Une
procédure est une fonction ou " FUNCTION " en ASP.
Il existe deux types de
procédure, il y a les " built-in " et les " user-defined ". C'est à dire les procédures
incluse dans le ASP que vous n'avez pas à définir (vois une liste de fonctions
plus loin dans le tutoriel) et les procédure créé par vous.
Définir une procédure
La définition d'une
procédure se fait entre les délimitations ASP <% et %> mais peut être mis
entre les balises <SCRIPT> et </SCRIPT> tout en respectant les règles
de déclaration des langages " script " utilisés. Ceci afin de permettre au ASP
d'appeler des procédures Javascript ou même JScript et VBScript.
- En asp
<%
Function NomDeMaFonction(argument 1,argument 2 etc)
tâches de la procédure
End Function
%>
- En VBScript
<%@ LANGUAGE=VBScript %>
<%
Sub NomDeMaFonction(argument 1,argument 2 etc)
tâches de la procédure
End Sub
%>
Quand vous utiliser la balise
HTML <SCRIPT>, vous devez spécifier deux attributs pour indiquer que la
tâche sera effectué par le serveur.
- En JScript
<SCRIPT LANGUAGE=JScript RUNAT=SERVER>
function MaFonction ()
{
tâches de la procédure
}
</SCRIPT>
- En JavaScript
<SCRIPT LANGUAGE=JavaScript RUNAT=SERVER>
function MaFonction ()
{
tâches de la procédure
}
</SCRIPT>
L'attribut RUNAT=SERVER
indique au serveur d'exécuter le script sur le serveur. Si vous ne spécifiez pas
cet attribut, la procédure sera exécutée par le navigateur du visiteur. L'attribut
LANGUAGE détermine le langage " SCRIPT " utilisé par la procédure ou par le BLOC
du SCRIPT. Vous pouvez spécifier tout langage installé sur le serveur. Pour spécifier
le VBScript, utiliser la valeur " VBScript " et pour spécifier le JScript, utiliser
la valeur " JScript ". Si vous ne spécifiez pas le langage, le script sera interprété
par le " premier langage script par défaut ".
Les commandes du BLOC doivent
être une ou plusieurs procédures du langage spécifié. Par exemple, La commande
suivante définit la procédure JScript MaFonction.
<HTML>
<SCRIPT LANGUAGE=JScript RUNAT=SERVER>
function MaFonction ()
{
Response.Write("Vous appelez MaFonction().")
}
</SCRIPT>
ATTENTION
de ne pas ajouter de code qui ne fasse pas partie de la procédure car les procédures
entre les balises " server-side " <SCRIPT> ne sont pas le langage par défaut
et sont donc interprété dans l'ordre visuel sans connaître nécessairement les
autres fonctions ou procédures. De plus vous ne pouvez pas inclure dans le BLOC
des directives de sortie ASP <%= %>. Utiliser Response.Write pour envoyer
le contenu au navigateur.
Appeler une procédure. Pour
appeler une procédure, vous pouvez inclure le nom d'une procédure dans une commande.
Si vous appelez une procédure JScript en VBScript, vous devez utiliser les parenthèses
après le nom de la procédure. Si la procédure n'a aucun argument, utiliser des
parenthèses vides. Si vous appelez une procédure VBScript ou JScript en JScript,
utiliser toujours les parenthèses après le nom de la procédure. Pour le VBScript,
vous pouvez aussi utiliser le mot réservé " CALL " pour appeler une procédure.
Sinon, si la procédure que vous appeler demande des arguments, la liste des arguments
doit être entre parenthèses. Si vous oubliez le mot réservé " CALL ", vous devez
aussi ne pas utiliser les parenthèses autour de la liste des arguments. Si vous
utilisez la syntaxe CALL pour appeler une fonction ASP ou vos fonctions maison,
la valeur retournée par la fonction sera abandonnée.
Deux exemples simples de
fonction
Exemple 1 :
<%
Function calcul1(num_x,num_y)
calcul1 = num_x + num_y
End Function
%>
Appelle de la fonction
<% Response.Write 5 + calcul1(1,2) %>
Exemple 2 :
<%
Function calcul2(num_x,num_y)
Response.Write num_x + num_y
End Function
%>
Appelle de la fonction
<%= calcul2(1,2) %>
L'exemple suivant illustre
comment créer une procédure et comment l'appeler en utilisant deux langages "
SCRIPT " différents, (VBScript et JScript). Il y a deux procédures, " AffDate
" en JScript et " AffRequete " en VBScript. Le HTML, appelle en VBScript la procédure
JScript AffDate puis la procédure VBScript AffRequete.
<%@ LANGUAGE=VBScript %>
<HTML>
<BODY>
<!- Appelle la procédure JScript en VBScript-->
<% call AffDate() %>
<!-- Appelle la procédure VBScript procedure en VBScript -->
<% AffRequete %>
<BR>
</BODY>
</HTML>
<%Sub AffRequete %>
<!-- Note: ceci n'affichera rien tant que la page ne sera
pas appelé avec une chaîne de requètes " query string "
comme : test.asp?x=1%20have&y=a%20cunning&z=plan -->
<%
Response.Write "<TABLE BORDER=1>" & _
"<TR><TH>Nom</TH><TH>Valeur</TH></TR>"
Set objQueryString = Request.QueryString
For Each strSelection In objQueryString
Response.Write "<TR><TD>" & strSelection & "</TD><TD>" & _
objQueryString(strSelection) & "</TD></TR>"
Next
Response.Write "</TABLE>"
End Sub
%>
<SCRIPT LANGUAGE=JScript RUNAT=SERVER>
function AffDate()
{
var x
x = new Date()
Response.Write(x.toString())
Response.Write("<BR>")
}
</SCRIPT>
Note : l'appelle d'une fonction
JScript par le VBScript ne fait pas la différence entre les caractères minuscules
et les caractères majuscules.
Passer un tableau " ARRAY
" à une procédure.
Pour passer un tableau " ARRAY
" à une procédure en VBScript, utiliser le nom du tableau suivi par des parenthèses
vide. En JScript, utiliser des " barquettes vides ", " [ " et " ] "
Les fonctions " built-in
" du ASP
Dans le menu de
droit vous avez la description de plusieurs fonctions ASP. La description de chaque
fonction utilise le même protocole.
Le nom de la fonction
: Fonction - non_de_la_fonction()
Une courte description : Retourne telle ou telle valeur selon tel traitement
etc.
La Syntaxe : fonction(paramètre1,paramètre2,[paramètre_optionnel]…)
Noter que des paramètres peuvent être optionnels, ce qui veut dire que vous pouvez
les identifier seulement si vous en avez besoin. Un paramètre optionnel est toujours
indiqué par des " barquettes vides ", " [ " et " ] "
Un exemple en asp.
Et le résultat de l'exemple !
|