IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Partagez vos meilleurs sources ASP. Vous pouvez ajouter vos commentaires :o)


Sujet :

ASP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Community Manager

    Profil pro
    Inscrit en
    Avril 2014
    Messages
    4 207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2014
    Messages : 4 207
    Par défaut Partagez vos meilleurs sources ASP. Vous pouvez ajouter vos commentaires :o)
    Salut,

    Comme souvent on a de bonnes idées pour se faciliter la vie pourquoi ne pas en faire profiter tout le monde?

    Ajouter tout ce qui peux aider à la suite de ce message.

    Merci

    ----------------------------------------------------------------------------
    ----------------------------------------------------------------------------

    Salut à tous (débutants comme confirmés),

    Voici un retour sur experience qui peut se résumer ainsi:
    UTILISEZ DES CLASSES!!!

    Je m'explique (et ça n'engage que moi).

    L'informatique c'est pour les fainéants (j'en suis un gros). Je ne rechigne pas à la tâche, mais quand mon PC peut bosser à ma place, je suis content.

    En conséquence cherchez toujours à vous économisez vous bosserez moins et vous gagnerez plus (de temps...).

    Comment? En ecrivant le moins de code possible pardi!!
    Je vois souvent des kilomètres de codes linéaires! A mort! Ne répétez jamais deux fois le même code. FACTORISEZ.

    Et en pratique? Comme dit le post précédent allez voir le tuto sur les classes. Si vous ne comprennez pas (j'avoue que j'ai eu du mal la première fois) voici un exemple sur lequel méditer:

    1 - Créez une page "cls_Parent.asp"
    2 - Collez ce code dedans. Sauvegardez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <%Class Parent
        Private NomPere_
        Private NomMere_
     
        Private Sub Class_Initialize
            NomPere_ = null
            NomMere_ = null
        End Sub
     
        Private Sub Class_Terminate
            NomPere_ = null
            NomMere_ = null
        End Sub
     
        Public Default Property Get DefaultProperty
            DefaultProperty = "Parent"
        End Property
     
        Public Property Let NomPere(s)
            NomPere_ = s
        End Property
     
        Public Property Get NomPere
            NomPere = NomPere_
        End Property
     
        Public Property Let NomMere(s)
            NomMere_ = s
        End Property
     
        Public Property Get NomMere
            NomMere = NomMere_
        End Property
    End Class
    %>
    3 - Créez une page "cls_Enfant.asp"
    4 - Collez ce code dedans. Sauvegardez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <%
    Class Enfant
        Private Prenom_
        Private objParent_
     
        Private Sub Class_Initialize
            Prenom_ = null
            Set objParent_ = Nothing
        End Sub
     
        Private Sub Class_Terminate
            Prenom_ = null
            Set objParent_ = Nothing
        End Sub
     
        Public Default Property Get DefaultProperty
            DefaultProperty = "Enfant"
        End Property
     
        Public Property Get oParent
            Set oParent = objParent_
        End Property
     
        Public Property Set oParent(o)
            Set objParent_ = o
        End Property
     
        Public Property Get Prenom
            Prenom = Prenom_
        End Property
     
        Public Property Let Prenom(s)
            Prenom_ = s
        End Property
     
    End Class
    %>
    5 - Créez une page "Test.asp"
    6 - Collez ce code dedans. Sauvegardez.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <%@ LANGUAGE="VBSCRIPT" CODEPAGE="1252"
    Option Explicit%>
    <!--#include file="cls_Parent.asp" -->
    <!--#include file="cls_Enfant.asp" -->
     
    <%
    Dim p, e
    Set p = new Parent
        Response.Write p & "<br />"
        p.NomPere = "Joseph"
        Response.Write p.NomPere & "<br />"
        Set e = new Enfant
            Set e.oParent = p
            e.Prenom = "Jésus"
            Response.Write e.oParent.NomPere & " est le père de " & e.Prenom & "<br />"
            e.oParent.NomMere = "Marie"
            Response.Write p.NomMere & "<br />" & e.oParent.NomMere & " est la mère de " & e.Prenom & "<br />"
        Set e = Nothing
    Set p = Nothing
    %>
    7 - Executez "Test.asp"
    8 - Méditez
    9 - Poses vos question si vous en avez.

    Vous aurez une approche objet de l'ASP. Très utile pour passer au .NET par la suite.

    A+
    Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut Classe pour la gestion des methode d'accès à la base de données
    Re,

    Sympa ces histoires de familles, mais comment pouvez-vous transposer cet exemple à quelque chose d'utile pour vous?
    Et bien c'est super simple. Je vois souvent des chaines de connections dans chacune de vos pages. Du code qui ressemble à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
     
    <title>Ma page</title>
     
    </head>
     
    <body>
    <%
    Dim Provider, oConn, oCm, oRs
    strProvider = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("MaBase.mdb") & ";"
    set oConn = server.createobject("ADODB.Connection")
     
    oConn.Open strProvider
     
    set oCm = Server.CreateObject("ADODB.Command")
    oCm.ActiveConnection = oConn
    %>
    Je le sais, j'ai commencé comme ça!
    Cette façon de faire pose un énorme problème. Le jour où vous déplacez, renommez ou migrez la base vers du SQL, il faut retrouver toutes les occurences de la chaine de connection et les modifier.
    Voici comment faire mieux.
    Principe: on va créer une classe qui va se charger de nous fournir la connection dont on a besoin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <%
    ' Afin de rester simple, toutes les propriétés Get, Let, Set ne figurent pas.
    Class DBFactory
     
            ' Les variable privées sont inaccessibles depuis l'exterieur
            ' nous les consulterons par l'intermediaire de leurs propriétés nommées "accessers".
            ' Les accessers sont comme des fonctions.
            Private m_Provider ' variable privée de la chaine de connection
            Private m_oCn ' objet privée de connection
            Private m_oCm ' objet privé de command
     
            ' Ce que va faire la classe au moment de son instanciation
            ' 1 - Créer une connection ADO
            ' 2 - Créer une command ADO
            Private Sub Class_Initialize
                    Set m_oCn = Server.CreateObject("ADODB.Connection")
                    Set m_oCm = Server.CreateObject("ADODB.Command")
                    ' A ce stade les objets m_oCn et m_oCm ne sont pas utilisables car non "connectés". Il faut récupérer la chaine de connection
            End Sub
     
            ' Ce que va faire la classe au moment de sa destruction
            ' 1 - detruire l'objet command
            ' 2 - fermer la connection si elle est encore ouverte
            ' 3 - détruire l'objet connection
            Private Sub Class_Terminate
                    Set m_oCm = Nothing
                    If m_oCn.State = 1 then m_oCn.Close()
                    Set m_oCn = Nothing
            End Sub
     
            ' Permet :
            ' 1 - D'assigner la chaine de connection
            ' 2 - Ouvrir la connection
            ' 3 - De lier l'objet Command à la connection
    	Public Property Let Provider(s)
                    m_Provider = s
                    ' Au moment où nous allons assigner une valeur à la chaine de connection, nous allons l'ouvrir.
                    m_oCn.ConnectionString = m_Provider
                    m_oCn.Open()
                    ' Nous lions la command à l'objet connection
                    m_oCm.ActiveConnection = m_oCn
    	End Property
     
            ' Cette propriété execute la requete SQL et renvoi le recordset correspondant
            Public Function ExecuteQuery(s)
                m_oCm.CommandText = s
                    Set ExecuteQuery = m_oCm.Execute()
            End Function
    End Class
    %>
    Pour réutiliser ce code dans vos pages il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!-- #include file="DBFactory.asp" -->
    <%
    Dim db, rs
     
    Set db = new DBFactory
        db.Provider = Application("ChaineDeConnection")
        Set rs = db.ExecuteQuery("SELECT TOP 10 * FROM MATABLE;")
            (...)
        Set rs = Nothing
    Set db = Nothing
    %>
    C'est une façon de faire. Il en existe bcp d'autres. On peut ainsi se constituer une sorte de FrameWork.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut Comment organiser une page ASP?
    Re,

    Bon, continuons sur notre lancée sur la question de l'organisation d'une page.
    Ici encore, il y a plusieurs façons mais grosso modo, je dirais:
    1. Linéaire
    2. Modulaire

    La méthode linéaire est la première à laquelle on pense (surtout quand on débute j'en sais quelquechose). Le code HTML et le code de script se mélangent et s'executent dans l'ordre depuis le début jusqu'à la fin de la page. On n'y trouve pas de procédure ni de fonction. J'ai beau chercher, je ne trouve pas (plus) d'intérêts à l'utiliser. Ah si, cela permet à votre EDI préféré de renvoyer un rendu de votre page quand vous passez en mode "design".

    Au contraire, la méthode modulaire permet de découper le code et d'en executer tout ou partie selon le résultat qu'on souhaite obtenir. On a tout à gagner à isoler des bouts de codes. Principal avantage: la possibiliter de les réutiliser dans d'autres pages, de ne pas avoir à réécrire deux fois la même chose donc de diminuer la maintenance, du même coup, diminuer le risque d'erreurs, moins de plantages, des utilisateurs et un patron heureux. Bon, évidement c'est moins joli en mode "design" mais ça fait très pro.

    Dans le meilleur des cas (à mon sens), une page "modulaire" ne contient que des procédures, fonctions ou classes. Dans tous les cas PAS de code HTML en dehors. En voici un plan:
    1. Une procédure principale qui va piloter la page. On l'appelera "Main". C'est court et ça veut dire "principal".
    2. Des procédures/fonctions secondaires qui sont autant d'outils.

    Parmis ces outils on peut compter un moyen :
    1. de se connecter à une base de données
    2. de récupérer des paramètres issue de l'URL ou d'un formulaire
    3. de mettre à jour une base de données
    4. faire des calculs
    5. de récupérer des informations d'une base de données
    6. d'afficher un contenu pour l'internaute
    7. d'envoyer des emails
    8. plein de trucs super sympa...
    9. de se déconnecter

    Comme exemple, prenons un simple formulaire de recherche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <!-- Si je mets rien dans action cela envoi le formulaire sur la même page -->
    <form action="" id="form" method="post" name="search" >
    	<input id="txtNom" name="txtNom" type="text" />
    	<input id="action" name="action" type="submit" />
    </form>
    Le code pour traiter les données du formulaire pourrait ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <!-- #include file="DBFactory.asp" -->
    <%
    Dim db, rs
     
    ' ATTENTION: on réutilise la classe DBFactory mais modifiée de telle façon que
    ' la chaine de connection soit directement assigné dans la classe. C'est toujours ça de moins à répéter.
    Set db = new DBFactory
        Set rs = db.ExecuteQuery("SELECT USER_LNAME AS NOM, USER_FNAME AS PRENOM FROM [USERS] WHERE USER_LNAME LIKE '%" & Request.Form("txtName") & "%';")
            If not rs.EOF then
    		Do While not rs.EOF
    			Response.Write "Nom : " & rs("NOM") & ", Prénom : " & rs("PRENOM") & "<br />"
    			rs.Movenext
    		Loop
    	Else
    		Response.Write "Pas de résultat."
    	End if
        Set rs = Nothing
    Set db = Nothing
    %>
    Pour le moment tout cela n'est pas encore très modulaire. Voici comment faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    ' On déclare les variables et objets globaux
    Dim db ' Notre objet de base de données
     
    ' On appel la procédure principale et on lui passe le contenu du formulaire
    Call Main(Request.Form)
     
    ' La procédure reçoit le formulaire auquel on fera référence en utilisant "frm"
    Public Sub Main(frm)
    	' Appel de la procédure "Connect" pour instancier l'objet "db"
    	Call Connect
     
    	' Affichage du formulaire
    	Call DisplayForm(frm)
     
    	' Vérifions si la page reçoit des données du formulaire
    	If Len(frm) > 0 then
    		' Le formulaire contient des données.
    		' On appel la procédure résponsable de l'affichage du résultat.
    		' On lui passe les données du formulaire
    		Call DisplayResult(frm)
    	Else
    		Call DisplayMessage()
    	End if
     
    	' Appel de la procédure "Disconnect" pour détruire l'objet "db"
    	Call Disconnect
    End Sub
     
    Public Sub Connect
    	Set db = new DBFactory
    End Sub
     
    Public Sub DisplayForm(frm)
    	Response.Write "<form action="""" id=""form"" method=""post"" name=""search"" >" & _
    		"	<input id=""txtNom"" name=""txtNom"" type=""text"" value=""" & frm("txtNom") & """ />" & _
    		"	<input id=""action"" name=""action"" type=""submit"" value=""Search"" />" & _
    		"</form><br />"
    End Sub
     
    Public Sub DisplayResult(frm)
        Dim rs ' Déclaration d'un recordset.
     
        ' Inutile de créer un objet recordset car ce sera fait automatiquement par la fonction "ExecuteQuery"
        Set rs = db.ExecuteQuery("SELECT USER_LNAME AS NOM, USER_FNAME AS PRENOM FROM [USERS] WHERE USER_LNAME LIKE '%" & frm("txtName") & "%';")
        If not rs.EOF then
            Response.Write "Voici le résultat de la recherche de: " & frm("txtNom") & ".<br />"
            Do While not rs.EOF
                Response.Write "Nom : " & rs("NOM") & ", Prénom : " & rs("PRENOM") & ".<br />"
                rs.Movenext
            Loop
        Else
            Response.Write "Il n'y a pas de résultat pour la recherche de: " & frm("txtNom") & ".<br />"
        End if
        Set rs = Nothing
    End Sub
     
    Public Sub DisplayMessage()
    	Response.Write "Veuillez saisir un nom et lancer la recherche."
    End Sub
     
    Public Sub Disconnect
    	Set db = Nothing
    End Sub
    Vous pouvez constater que ce code ne contient que des procédures. Il devient donc très facile d'y faire appel dans l'ordre qu'on souhaite ou pas du tout, d'en intercaler d'autres qui viendront enrichir la page.
    De plus, la procédure "Main" indique clairement le déroulement de la page.
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut Genre on dirait qu'on ferait du .NET
    Re,

    Si on faisait un page comme en .NET, c'est à dire une page que ne serait qu'une classe?
    Pour ceux qui font un peu de .NET, on sait que les pages aspx sont des classes et que lorsque qu'elles sont lancée il se produit un évènement "Page_Load". Cet évènement se produit toujours. En ASP3 on pourrait faire la similitude avec la méthode Class_Initialize.
    On peut transformer le code de mon précédent post en une classe.

    Tout d'abords, voici la dernière version de la classe DBFactory. J'ai ajouté deux méthodes l'une permet à partir d'un recordset de générer le code HTML d'un tableau, l'autre de créer une liste déroulante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
     
    <%
    Class DBFactory
        Private m_Provider
        Private m_oCn
        Private m_oCm
     
        Private Sub Class_Initialize
            Set m_oCn = Server.CreateObject("ADODB.Connection")
            Set m_oCm = Server.CreateObject("ADODB.Command")
            m_oCn.ConnectionTimeout = 30
            Me.Provider = Application("ConnectionString")
        End Sub
     
        Private Sub Class_Terminate
            Set m_oCm = Nothing
            If m_oCn.State = 1 then m_oCn.Close()
            Set m_oCn = Nothing
        End Sub
     
        Public Default Property Get DefaultProperty
    		DefaultProperty = "Class DBFactory"
        End Property
     
        Public Property Let Provider(s)
            m_Provider = s
            m_oCn.ConnectionString = m_Provider
            m_oCn.Open()
            m_oCm.ActiveConnection = m_oCn
        End Property
     
        Public Property Get Connection
            Set Connection = m_oCn
        End Property
     
        Public Property Get Command
            Set Command = m_oCm
        End Property
     
        Public Function ExecuteQuery(s)
            m_oCm.CommandText = s
            Set ExecuteQuery = m_oCm.Execute()
        End Function
     
        Public Sub RsToTable(rs, classname)
            Dim i
            response.Write("<table class=""" & classname & """>"  & vbcrlf)
            for i= 0 to rs.fields.count-1
                response.write ("<th>" & rs.fields(i).name & "&nbsp;</th>" & vbcrlf)
            next 
            Do while not rs.eof 
                response.Write("<tr>" & vbcrlf)
                for i= 0 to rs.fields.count-1 
                    response.write ("<td>" & rs.fields(i).value & "&nbsp;</td>" & vbcrlf)
                next 
                response.Write("<tr>" & vbcrlf)
                rs.movenext 
            loop
            response.Write("</table>" & vbcrlf)
        End Sub
     
        Public Sub RsToDDListe(rs, classname, selectedvalue, id)
            response.Write("<select class=""" & classname & """ id=""" & id & """ name=""" & id & """>"  & vbcrlf)
            Do while not rs.eof
                If strcomp(selectedvalue,rs.fields(0).value) = 0 then
                    response.write ("<option value=""" & rs.fields(0).value & """ selected = ""selected"">" & rs.fields(1).value & "</option>" & vbcrlf)
                Else
                    response.write ("<option value=""" & rs.fields(0).value & """>" & rs.fields(1).value & "</option>" & vbcrlf)
                End if
                rs.movenext 
            loop
            response.Write("</select>" & vbcrlf)
        End Sub
    End Class
    %>
    Ensuite, voici le code de la page de recherche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <%@ LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <% Option Explicit%>
     
    <!--#include file="DBFactory.asp" -->
     
    <%
    ' Cette section est destinée à lancer l'execution de la classe.
    ' On ne passe pas d'arguments.
    Dim rech
    Set rech = new Recherche
    Set rech = Nothing
     
    Class Recherche
    	Private bd_
     
    	' Cette procédure se lance au moment de l'instanciation de la classe Recherche
    	Private Sub Class_Initialize
            Set bd_ = new DBFactory
    		' Affichage de l'entête
            Header
    		' Affichage du formulaire. Passage de la totalité du formulaire
    		DisplayForm(Request.Form)
    		' Affichage du résultat. Passage de la totalité du formulaire
    		DisplayResult(Request.Form)
    		' Affichage du pied de page
    		Footer
    	End Sub
     
    	' Cette procédure se lance au moment de la fin de l'execution de la page.
    	Private Sub Class_Terminate
            Set bd_ = Nothing
    	End Sub
     
    	Private Sub Header
    	    %>
    	    <html>
    	    <head>
    	        <title>Recherche</title>
    	        <style type="text/css">
    	            body
    	            {
    	                font-family:Arial;
    	                font-size:1em;
    	            }
    	            table
    	            {
    	                border-collapse:collapse;
    	                border: solid 1px black;
    	                font-size:0.8em;
    	            }
    	            th
    	            {
    	                background-color:Silver;
    	                border: solid 1px black;
    	                font-weight:bold;
                    }
    	            td
    	            {
    	                border: solid 1px black;
    	            }
    	        </style>
    	    </head>
     
    	    <body>
    	    <%
    	End Sub
     
    	Private Sub Footer
    	    %>
    	    </body>
    	    </html>
    	    <%
    	End Sub
     
    	Private Sub DisplayForm(frm)
    		Response.Write "<form action="""" id=""form"" method=""post"" name=""search"" >" & _
    			"	<input id=""txtNom"" name=""txtNom"" type=""text"" value=""" & frm("txtNom") & """ />" & _
    			"	<input id=""action"" name=""action"" type=""submit"" value=""Search"" />" & _
    			"</form><br />"
    	End Sub
     
    	Private Sub DisplayResult(frm)
    	    Dim rs, i
     
    		If len(frm("txtNom")) > 0 then
    		    Response.Write "Voici le résultat de la recherche:<br />"
    		    Set rs = bd_.ExecuteQuery("SELECT * FROM [USER] WHERE User_Lname LIKE '%" & frm("txtNom") & "%';")
                    Call bd_.RsToTable(rs, "")
    		    Set rs = Nothing
    		Else
    			Response.Write "Veuillez saisir un nom et lancer la recherche."
    		End If
    	End Sub
    End Class
     
    %>
    L'initialisation de la classe provoque l'affichage de l'entête, puis du formulaire, puis du résultat et enfin du pied de page. La finalisation de la classe provoque la destruction des objets créés au cours de l'exécution du code.

    N'hésitez pas à me dire si j'ai laissé un bug ou à faire des suggestion.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. Vos meilleurs codes sources
    Par Community Management dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 97
    Dernier message: 01/02/2015, 12h10
  2. Vos trucs&astuces pour vous prémunir de vos propres erreurs
    Par macben dans le forum Administration
    Réponses: 3
    Dernier message: 29/10/2010, 15h19
  3. Ajouter des commentaire à vos codes-sources
    Par Zaki_SDwin dans le forum Contribuez
    Réponses: 6
    Dernier message: 17/06/2008, 01h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo