- · Niveau : INTERMÉDIAIRE
- · Compatibilité : Serveur NT/2000 IIS
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 !