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 :

Balise "<?" ou javascript côté serveur.


Sujet :

ASP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut Balise "<?" ou javascript côté serveur.
    Bonjour,

    Je reviens vers vous après une très longue absence...

    J'aurais une petite question un peut "métaphysique"; Je m'excuses donc d'une part si elle peut paraître triviale (qui a dit "stupide" dans l'assistance ? ) à certains et d'autres part si jamais je ne suis pas dans la bonne rubrique.

    Avant de poser mes questions, je tenais à préciser un petit peut le contexte. Je me suis trouvé confronté à une affirmation de la part d'un collègue qui m'affirme que l'on peut exécuter JAVASCRIPT du côté serveur au moyen des balises "<? ... ?>" (en lieux et places de la balise "<script> ... </script>".

    Je précise qu'il développe en Javascript dans de l'ASP.

    Voici mes questions :

    QUESTION I
    Ors ce qui me gène, c'est que dans toute la documentation que j'ai pu consulter, Javascript est dit devoir s'exécuter du côté du client et on ne le présente que entre balises "scripts"... Pouvez vous me donner des précisions sur ce point s'il vous plait ?

    QUESTION II
    J'ai même trouvé sur un forum une remarque disant que la balise "<? ... ?>" était je cite "proscrite sur les serveurs dignes de ce nom". Qu'en pensez vous ?

    QUESTION III
    Par ailleurs, sur certains sites Web, il est dit que l'on ne peut pas accéder aux données avec du Javascript, mais que PHP est là pour ça... Encore une fois pouvez vous me dire ce qu'il en est (car apparemment mon collègue semble passer par Javascript) ?

    Je n'ai rien trouvé concernant tous ces points. Pouvez vous m'aider s'il vous plait ?

    Par avance je vous remercie.

    Marco.

    NB : cette discussion a été re-postée ici, suite aux indication des personnes du forum Javascript où je l'avais mise initialement (http://www.developpez.net/forums/d66...r/#post3881692).

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Un petit point s'impose, en effet :

    Il faut différencier les programmes qui tournent côté navigateur ("client") et les programmes qui tournent côté serveur.

    Côté navigateur, essentiellement, c'est du javascript. Un navigateur se démarque des autres, comme toujours, et permet également d'interpréter du vbscript. Tu l'auras deviné, c'est Internet Explorer. Oublies cette fonctionnalité.

    Les balises à utiliser :
    <script language="javascript"></script>

    Côté serveur, et selon le serveur, il y a une papardelle de langages : ASP, PHP, JAVA, python, j'en passe et des meilleures. Autant que je sache, mais j'en dis peut-être une plus grosse que moi, les balises <? ... ?> concernent le PHP. Comme ici, on est sur le forum ASP, en voici un peu plus :

    Contrairement à ce que je viens d'écrire, ASP n'est pas un langage, mais un modèle objet, fourni pas IIS (asp.dll, pour etre plus précis). Il est utilisable avec plusieurs langages dont vbscript, le plus courant, mais aussi JAVA (JSP), ou ... javascript ( on parlera plutot de Jscript).

    En ASP, les balises à utiiser sont <% ...%>

    Pour préciser le langage, la première instruction de la page ASP doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    (adapter selon les besoins, of course)

    voili voilou

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Merci de toutes ces précisions.

    En cherchant un peut j'ai découvert (chaque jour j'en apprends et c'est heureux ), que "Response" avait un usage particulier...

    Par contre je n'arrive pas à trouver de référence à "Response" dans la documentation Javascript... Comment cela se fait-il ?

    Par ailleurs, y aurait-il une meilleure manière d'utiliser cet ordre que dans l'exemple de code suivant :

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
     
     
     
     
        <%@  Language=JavaScript %>
        <%Response.Expires=0;%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>V&eacute;rifier les saisies de formulaire</title>
    </head>
     
    <body>
    <!--#INCLUDE VIRTUAL="/MesCodes/Includes/Connect.asp"-->
    <!--#INCLUDE VIRTUAL="/MesCodes/Includes/http.asp"-->
     
    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctRemplirCombo
    //Objet                 :   Création d'une combo dynamiquement 
    //Type                  :   Serveur (Base de données/HTML)
    //Paramètres            :
    //  - StrId             :   Identifiant de la combo
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - StrDefaultValue   :   Valeur par défaut
    //Résultat              :   Chaîne HTML de création de la combo
    //Retourne              :   Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRemplirCombo(StrId, StrSql1, StrFl, StrFv, StrFi, StrDefaultValue)
    {
    var StrHtml='<select id="' + StrId + '" name="' + StrId + '" onchange="FrmSelection.submit()";>';
     
    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
        while (!rs.BOF && !rs.EOF)
        {
            StrHtml += '<option value= "' + rs.Fields(StrFi) + '">' + rs.Fields(StrFv); 
            if (String(rs.fields(StrFv))==StrDefaultValue) StrHtml+=" Selected";
            StrHtml+=' </option>';
    	    rs.MoveNext();
        }
        StrHtml+='</select>';    	
        rs.close();
        Response.Write(StrHtml);
     
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction      :   FctExecuteCombo
    //Objet         :   Valeurs retournées sur la page HTML lors de la sélection d'une catégorie dans la combo
    //Type          :   Serveur (Base de données/HTML)
    //Paramètres    :
    //  - StrId     :   Identifiant de la combo
    //  - StrSql    :   Chaîne SQL
    //  - StrFl     :   Profil
    //  - StrFv     :   Champs de paramétrage sélectionnés préalablement dans la combo
    //  - StrCol    :   Colonnes sélectionnées
    //Résultat      :   Chaîne HTML de création de la liste des bateaux (codes + libellés)
    //Retourne      :   Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctExecuteCombo(StrId, StrSql1, StrFl, StrFv, ArrCol)
    {
    var StrHtml='';
    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
    Response.Write("Test sql : <br>" + StrSql1 + "<br>");
     
        if (rs.BOF) 
            {
            Response.Write("Aucune donnée à afficher.<br>"); 
            return; 
            }
     
        StrHtml="<table id='" + StrId + "' name='" + StrId + "' >";
     
    	while (!rs.BOF && !rs.EOF)
    		{
    		StrHtml+="<tr>";
    		for (IntCpt=0; IntCpt < ArrCol.length; IntCpt++)
    			{
    			StrHtml+="<td>" + rs.Fields(ArrCol[IntCpt]) + "</td>";
    			}
            StrHtml+="</tr>";
    		rs.MoveNext();
    		}
     
        StrHtml+='</table>';
        Response.Write(StrHtml);
        rs.close();
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction      :   FctContenuCombo
    //Objet         :   Affiche la liste des options de la combo
    //Type          :   Serveur (Base de données/HTML)
    //Paramètres    :
    //  - StrId     :   Identifiant de la combo
    //Résultat      :   Chaîne HTML
    //Retourne      :   Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctContenuCombo(CboSelect)
    {
        Response.Write("Test : Coucou=" + "Coucou" + "<br>");    
        for (var opOption in CboSelect)
        {
            Response.write(opOption + ": " + CboSelect[opOption] + "<BR>");
        }
    }
     
     
    TestEnveloppeHTTP();
    %>
    <!--
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Corps de la page
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    -->
        <h1>Sélection des secteurs</h1>
     
        <form 
            name="FrmSelection"
            method="post"
        >
     
    <input id="Hidden1" name="H1" type="text" value="hid" /><br /><select name="Select1">
        <option value='A'>1</option>
        <option value='B'>2</option>
    </select><br />
    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction      :   main
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    var StrSQL ="SELECT [SECTEUR_CODE], [SECTEUR_LIBELLE] FROM [SECTEUR] WHERE SECTEUR_CODE !='?'";
    var ArrCol = new Array();
     
        FctRemplirCombo("CboSecteurCode", StrSQL, "PROFIL_USER_1", "SECTEUR_LIBELLE", "SECTEUR_CODE", String(Request.Form("CboSecteurCode")));
    //  - StrId             :   Identifiant de la combo
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - StrDefaultValue   :   Valeur par défaut
     
        Response.Write("Test : CboSecteurCode=" + Request.Form("CboSecteurCode") + "<br>");    
     
        ArrCol[0]="CLIENT_CODE";
        ArrCol[1]="CLIENT_LIBELL";
        StrSQL ="SELECT [CLIENT_CODE], [CLENT_LIBELL] FROM [CLIENT] WHERE [SECTEUR_CODE]='" + String(Request.Form("CboSecteurCode")) + "'";
     
        FctExecuteCombo("CboSecteurCode", StrSQL, "PROFIL_USER_1", String(Request.Form("CboSecteurCode")), ArrCol);
    //  - StrId     :   Identifiant de la combo
    //  - StrSql    :   Chaîne SQL
    //  - StrFl     :   Profil
    //  - StrFv     :   Champs de paramétrage sélectionnés préalablement dans la combo
     
        FctContenuCombo("CboSecteurCode");
     
    //  - ArrCol    :   Colonnes sélectionnées
    %>
     
    <input id="Submit1" name="Submit1" type="submit" value="submit" />  
      </form>
    </body>
     
    </html>
    Ce que je veux dire en particulier (si tu regardes ce bout de code), c'est que j'agrège ma réponse dans une variable de type chaîne avec de faire un "response.write"... Peut-on faire autrement ? car j'imagine que la "string" n'a pas une longueur infinie ?

    Par avance merci.

    Bonnes fêtes. Joyeux Noël et bonne année à tous.

    Marco.

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Response est un des objets d'ASP, raison pour laquelle tu ne la trouves pas dans les docs de javascript, qui sont celles du javascript "officiel" client.
    Il représente, comme son nom le montre assez bien, la réponse qui sera envoyée au navigateur.

    Pour la longueur d'un string, ça dépends de celle qui le porte . Non, j'déconne. Je n'en sais trop rien. Par contre pour tes fonctions, au lieu de

    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction : FctRemplirCombo
    //Objet : Création d'une combo dynamiquement
    //Type : Serveur (Base de données/HTML)
    //Paramètres :
    // - StrId : Identifiant de la combo
    // - StrSql1 : Chaîne SQL
    // - StrFl : Profil
    // - StrFv : Champs visible (affiché)
    // - StrFi : Champs invisibles (index)
    // - StrDefaultValue : Valeur par défaut
    //Résultat : Chaîne HTML de création de la combo
    //Retourne : Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRemplirCombo(StrId, StrSql1, StrFl, StrFv, StrFi, StrDefaultValue)
    {
    var StrHtml='<select id="' + StrId + '" name="' + StrId + '" onchange="FrmSelection.submit()";>';

    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
    while (!rs.BOF && !rs.EOF)
    {
    StrHtml += '<option value= "' + rs.Fields(StrFi) + '">' + rs.Fields(StrFv);
    if (String(rs.fields(StrFv))==StrDefaultValue) StrHtml+=" Selected";
    StrHtml+=' </option>';
    rs.MoveNext();
    }
    StrHtml+='</select>';
    rs.close();
    Response.Write(StrHtml);

    }
    Je ferais plutôt :
    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
    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctRemplirCombo
    //Objet                 :   Création d'une combo dynamiquement 
    //Type                  :   Serveur (Base de données/HTML)
    //Paramètres            :
    //  - StrId             :   Identifiant de la combo
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - StrDefaultValue   :   Valeur par défaut
    //Résultat              :   Chaîne HTML de création de la combo
    //Retourne              :   Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRemplirCombo(StrId, StrSql1, StrFl, StrFv, StrFi, StrDefaultValue)
    {
    var StrHtml='<select id="' + StrId + '" name="' + StrId + '" onchange="FrmSelection.submit()";>';
     
    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
        while (!rs.BOF && !rs.EOF)
        {
            StrHtml += '<option value= "' + rs.Fields(StrFi) + '">' + rs.Fields(StrFv); 
            if (String(rs.fields(StrFv))==StrDefaultValue) StrHtml+=" Selected";
            StrHtml+=' </option>';
            rs.MoveNext();
        }
        StrHtml+='</select>';        
        rs.close();
        return StrHtml;
        
    }
    
    Response.Write(FctRemplirCombo(.....));

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Merci pour cette précision l'ami. je vais tacher de m'en inspirer pour la suite.

    Apparemment dan ton code, tu as l'ai de bien séparer les aspects exécution+ formatage de l'aspect purement "affichage.

    Sinon, si Javascript est un langage "côté client" comme j'ai cru le comprendre, comment le situer si on l'utilise entre les balises "<? ... ?>" (donc côté serveur) ? Est-ce toujours du Javascript ? L'insctruction "Response" fait-elle partie du langage Javascript ?

    Par avance je te remercie.

    Marco.

  6. #6
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Non Non

    Relis bien ce que je t'ai dit

    dans quel contexte trouves-tu ces balises <? ... ?> ?

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonsoir,

    Alors si j'ai bien tout compris, les balises "<? ... ?>" sont des balises ASP qui s'utilisent côté serveur.

    Il me semble également avoir compris que des fonctions telles que "response" sont également types de ASP (qui n'est pas un langage, mais un type de serveur permettant d'avoir des pages HTML générées en dynamique). Je me trompes dans mes définitions ?

    Merci en tous les cas pour toute ta patience.

    A très bientôt.

    Marco.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Salut,

    Response est un objet ASP contenant plusieurs fonctions.

    Las balises <? ... ?> permettent de définir des segments de code qui devront être interprétés par le serveur.

    Pour schématiser très grossièrement :

    1 - tu as une page contenant du HTML, Javascript, ASP (VBScript ou autre) ...

    2 - ton serveur lit la page, interprète le code entre les balises <? ... ?> et génère une nouvelle page contenant du HTML, Javascript uniquement. Pour générer du HTML ou Javascript dans des balises <? ... ?>, tu peux utiliser l'objet Response.

    3 - la page est envoyée au client

    4 - le client reçoit la page et interprète le Javascript et le HTML

    J'espère que t'y vois plus clair ...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    En relisant le post depuis le début, j'ai vu que tout part d'une remarque d'un de tes collègues sur le Javascript interprété côté serveur.

    La réponse est simple : non !! C'est un langage client par définition.

    Par contre, il n'y aurait pas une confusion avec l'AJAX, vu que c'est très en vogue en ce moment. L'ajax est un nouveau type de conception qui permet d'appeler de façon asynchrone le serveur via des requêtes Javascript.
    Mais le noyau du serveur reste dans son langage initial (VBScript, JScript ...).

  10. #10
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    La réponse est simple : non !! C'est un langage client par définition.
    Désolé d'insister, mais la réponse est Oui ! (certes, on l'appelle JScript, mais c'est kif-kif)

    L'entête sera
    <%@LANGUAGE="JAVASCRIPT" >

    re-Précision : <? .. ?>, c'est pour PHP, pas ASP.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Citation Envoyé par roro06 Voir le message
    Bonjour
    Désolé d'insister, mais la réponse est Oui ! (certes, on l'appelle JScript, mais c'est kif-kif)

    L'entête sera
    <%@LANGUAGE="JAVASCRIPT" >

    re-Précision : <? .. ?>, c'est pour PHP, pas ASP.
    Désolé pour les balises, je me suis un peu mélangé les pinceaux.

    Par contre, je répondais à la question suivante :
    "il est dit que l'on ne peut pas accéder aux données avec du Javascript"

    Si c'est possible, il faut m'expliquer comment ? Je n'ai fait que du VBScript, y'a peut-être un truc qui m'échappe en JScript ?

  12. #12
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Salut

    J'ai un peu zappé cette question

    "il est dit que l'on ne peut pas accéder aux données avec du Javascript"
    La réponse est "Effectivement, on ne peut pas accéder aux données du serveur par un javascript Client" (Mis a part, comme tu l'as dit, avec AJAX, qui n'est que du javascript ... Client , après tout)

    Et pour te répondre, les fonctionnalités d'ASP Jscript sont les mêmes qu'avec VBscript. L'intérêt que j'y trouve personnellement, c'est la plus grande richesse et les fonctionnalités plus évoluées du langage, mais je m'égare un peu, là

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Me voilà rassuré !
    Venant de toi, je m'étonnais de cette réponse.

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonsoir,

    Tout d'abord excusez pour cette réponse tardive...

    Merci de vos réponses? Je vous souhaites à tous une très bonne année pour commencer.

    Merci de prendre cette discussion avec autant de sérieux. Vous avez bien voulu considérer ma position et je vous en remercie.

    J'aimerais continuer dans la droite ligne si vous me le permettez ?

    Je me demande en fin de compte si partant de ce que vous me présentez, si on peut dire que ASP est un langage ou un type de serveur (Active Server Page) ?

    Car apparemment "Response" est une méthode typiquement ASP... Certaines réponses plus haut me paraissent confuses de ce point de vue.

    J'ai aussi cru lire quelque part que par défaut si on ne précise pas le langage, c'ets VBSscript qui est choisi... Mais dans les balises "<?...?>" il y a "Javascript" de précisé... Est-ce que ça ne devrait pas provoquer une erreur car c'est langage qui se situe côté "client" non ?

    J'avoue que je nage en pleine confusion là...

    Est-ce que vous me permettez d'y voir un peut plus clair ? J'espère que ces questions ne paraissent pas trop incongrues en tous les cas.

    A très bientôt.

    Marco.

  15. #15
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Salut, et bonne année à toutes et à tous

    si on peut dire que ASP est un langage ou un type de serveur (Active Server Page) ?
    C'est un modèle objet fournis par le serveur, dont response fait partie (ce n'est d'ailleurs pas une méthode, mais un objet). Le langage par défaut d'une page ASP est le vbscript, mais ça se configure au niveaux d'IIS (le serveur). Si tu ne spécifie rien, vbscript sera interprété par défaut. Si tu spécifie un autre langage, c'est celui-ci qui sera interprété.

    pour la dernière fois, oublies les balises <? ... ?>, qui concernent PHP.

    Un petit exemple :
    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
     
    <@language="vbscript" >
    spécifie que c'est le langage vbscript qui doit être interprété
     
    <% 
    ' passe en mode ASP, donc il n'y a ici que du code VBscript
    ' Exemple :
    Response.write "salut tout le monde"
     
    'La balise suivante quitte le mode ASP
    %>
     
    <a href="uneautrepage.asp">lien </a>
     
    <script language="javascript">
     
    // du code javascript qui sera interprété par le navigateur
    function test()
       {
       Window.alert("salut");
       }
     
    </script>
    <button type="button" onclick="test()">Afficher salut</button>
    En d'autres termes, tout ce qui est entre les balises <% et %> sera interprété par le serveur, il ne doit y avoir que du code que le serveur puisse comprendre. Donc, ici, il faut n'y mettre que du code vbscript.

    Tout ce qui est en dehors de ces balises sera envoyé tel quel au navigateur, qui lui même se chargera d'interprété le code compris entre les balises <script>


    Il est aussi possible d'utiliser javascript côté serveur, le principe reste rigoureusement le même :

    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
     
    <@language="javascript">
     
    <%
    // passe en mode ASP
    // la syntaxe est celle du javascript : 
    Response.Write("Hello, je suis du javascript");
    %>
     
    <script language="javascript">
    // du code javascript qui sera interprété par le navigateur
    function test()
       {
       Window.alert("salut");
       }
     
    </script>
    <button type="button" onclick="test()">Afficher salut</button>
    Tu remarqueras que ASP fait appel à l'objet Response, (modèle ASP, donc fournis par le serveur), mais que le script client appelle l'objet Window, qui appartient au modèle objet fourni par le navigateur (le "client")

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Bonjour et bonne année 2009 à tous avec la santé en premier lieu, beaucoup de réussite dans vos projets et plein de bons codes.

    Je te remercies de toute ta patience et de tes réponses.

    Effectivement je me mélange un peut les pinceaux entre <?...?> qui contient du PHP comme tu me le disais et <%...%> qui est dédié au code côté serveur (en ASP seulement ?).

    J'ai encore un peut de mal à me situer dans la partie ASP, pour savoir dans quel langage je suis j'avoue mais bon. En effet, dans mon cas, cela ressemble à du Javascript, mais côté serveur et en manipulant d'une part des objets ASP (en l'occurence "Response") et un recordset avec des données provenant d'une requête SQL...

    A un moment ou à un autre on m'a affirmé dans le post que ça n'était pas possible (1-Javascript langage côté client et 2-pas de manipulations de données). D'où ma perplexité.

    Par avance je vous remercie et m'excuses d'avance du dérangement.

    Marco.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    522
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 522
    Points : 522
    Points
    522
    Par défaut
    Salut,

    Tu attends une réponse à ton post ou tout est clair maintenant ? Comme je ne vois pas de question ...

    De toute façon, perplexe ou pas, y'a pas de miracle, le meilleur moyen de bien comprendre le concept est de pratiquer. C'est en forgeant ...

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    A dire vrai oui. J'ai un peut discuté avec ce collègue.

    Lui ne considère pas sa méthode comme très exotique, pour autant c'est quelqu'un qui est autodidacte.

    Il y a dans les choses qu'il emploie des objets type "response" qui sont des objets de IIS. Le fait d'employer JavaScript côté serveur me pose quand même un problème, même si ça marche.

    Ce qui me trouble c'est que je ne trouve aucun élément allant dans ce sens dans la documentation, que ce soit dans celle de ASP ou de Javascript où ne sont employées que les balises "<script>...</script>" et pas "<%...%>".

    Qu'en penses tu ?

    A bientôt.

    Marco.

  19. #19
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    Tu devrais poster le code qui te pose problème

  20. #20
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Voici donc un exemple de ce qui me passe problème :

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
     
     
     
    <%@  Language=JavaScript %>
    <%Response.Expires=0;%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>V&eacute;rifier les saisies de formulaire</title>
    </head>
     
    <body>
     
        <h1>Sélection des secteurs</h1>
     
        <form 
            name="FrmSelection"
            method=post
        >
    <!--#INCLUDE VIRTUAL="/FFV/Includes/Connect.asp"-->
    <!--#INCLUDE VIRTUAL="/FFV/Includes/http.asp"-->
     
    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctChargeRequeteEnTableau
    //Objet                 :   Création d'un tableau dynamique 
    //Type                  :   Serveur (Base de données/HTML)
    //Paramètres            :
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - ArrResultat       :   Tableau contenant les valeurs à afficher
    //Retourne              :   Le tableau contenant les valeurs renvoyées par la requête
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctChargeRequeteEnTableau(StrSql1, StrFl, StrFv, StrFi){
    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
    var IntCpt=0;
    var ArrResultat=new Array;
     
        while (!rs.BOF && !rs.EOF)
        {
            IntCpt++;
            ArrResultat[IntCpt] = new Array;
            ArrResultat[IntCpt] = new Array(rs.Fields(StrFi), rs.Fields(StrFv));
            rs.MoveNext();        
        }
        return ArrResultat;
        rs.close();  
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctRempliSecondSelect
    //Objet                 :   remplissage de la seconde combo
    //Type                  :   Client/Interface
    //Paramètres            :
    //  - StrListe          :   Nom de la combo à remplir
    //  - StrLibelle        :   Libellé de l'élément à remettre à zéro
    //Retourne              :   Néant
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRempliSecondSelect(StrListe, StrChoix){
    //    FctRaz(StrListe);
        document.FrmSelection.elements[StrListe].options[IntCpt]=StrChoix;
     
        for (IntCpt=0; IntCpt<ville[StrChoix].length; IntCpt++){
           new_option = new Option(document.FrmSelection.elements[StrListe][StrChoix][IntCpt][1],document.FrmSelection.elements[StrListe][StrChoix][IntCpt][0]);
           document.FrmSelection.elements[StrListe].options[document.FrmSelection.elements[StrListe].length]=new_option;
        }
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctRazSelect
    //Objet                 :   Vide la combo sélectionnée 
    //Type                  :   Client/Interface
    //Paramètres            :
    //  - StrLibelle        :   Libellé de l'élément à remettre à zéro
    //Retourne              :   Néant
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRazSelect(StrLibelle){
    var IntLongueur=document.formu.elements[StrListe].length;
    Response.Write("Test : StrLibelle=" + StrLibelle + "<br>");    
     
      for (IntCpt=IntLongueur; IntCpt>=0; IntCpt--)
         document.FrmSelection.elements[StrListe].options[IntCpt]=null;
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction              :   FctRemplirCombo
    //Objet                 :   Création d'une combo dynamiquement 
    //Type                  :   Serveur (Base de données/HTML)
    //Paramètres            :
    //  - StrId             :   Identifiant de la combo
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - StrDefaultValue   :   Valeur par défaut
    //Retourne              :   Chaîne HTML de création de la combo
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    function FctRemplirCombo(StrId, StrSql1, StrFl, StrFv, StrFi, StrDefaultValue)
    {
    var StrHtml='<select id="' + StrId + '" name="' + StrId + '" onchange="FrmSelection.submit()";>';
    var rs = ExecuteSqlServer_Client(StrFl, StrSql1);
     
        while (!rs.BOF && !rs.EOF)
        {
            StrHtml += '<option value= "' + rs.Fields(StrFi) + '">' + rs.Fields(StrFv);
            if (String(rs.fields(StrFv))==StrDefaultValue) StrHtml+=" Selected";
            StrHtml+=' </option>';
    	    rs.MoveNext();
        }
        StrHtml+='</select>';    	
        rs.close();
        Response.Write(StrHtml);
    }
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction      :   FctListeCombo
    //Objet         :   Valeurs retournées sur la page HTML lors de la sélection d'une catégorie dans la combo
    //Type          :   Serveur (Base de données/HTML)
    //Paramètres    :
    //Résultat      :   Informations sur l'écran
    //Retourne      :   Néan
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    TestEnveloppeHTTP();
    %>
     
    <%
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    //Fonction      :   main
    //////////////////////////////////////////////////////////////////////////////////////////////////////////
    var StrSQL ="SELECT [SECTEUR_CODE], [SECTEUR_LIBELLE] FROM [SECTEUR] WHERE SECTEUR_CODE !='?'";
    var ArrCol = new Array();
     
    //-> Je remplis la combo "appelante"
        FctRemplirCombo("CboSecteurCode", StrSQL, "FFV_IIS_SPORT", "SECTEUR_LIBELLE", "SECTEUR_CODE", String(Request.Form("CboSecteurCode")));
    //  - StrId             :   Identifiant de la combo
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - StrDefaultValue   :   Valeur par défaut
    //    Response.Write("Test : CboSecteurCode=" + Request.Form("CboSecteurCode") + "<br>");    
        StrSQL ="SELECT [CODE_BATEAU], [CODE_BATEAU_LIBELL] FROM [CODE_BATEAU] WHERE [SECTEUR_CODE]='" + String(Request.Form('CboSecteurCode')) + "'";
     
    //-> Je lance la requête pour récupérer le contenu de la seconde combo 
        ArrResultat = FctChargeRequeteEnTableau(StrSQL, "FFV_IIS_SPORT", "CODE_BATEAU_LIBELL", "CODE_BATEAU");
        Response.Write("Test : StrSQL=" + StrSQL + "<br>");    
    //  - StrSql1           :   Chaîne SQL
    //  - StrFl             :   Profil
    //  - StrFv             :   Champs visible (affiché)
    //  - StrFi             :   Champs invisibles (index)
    //  - ArrResultat       :   Tableau contenant les valeurs à afficher
    //Retourne              :   Le tableau contenant les valeurs renvoyées par la requête
     
        FctRemplirCombo("CboBateau", StrSQL, "FFV_IIS_SPORT", "CODE_BATEAU_LIBELL", "CODE_BATEAU", String(Request.Form("CboSecteurCode")));
    //-> Je remplis la seconde combo
    //-> Je remplis la combo "appelante"
        FctRempliSecondSelect("CboBateau", String(Request.Form('CboSecteurCode')));
    //  - StrListe          :   Nom de la combo à remplir
    //  - StrChoix          :   Libellé de l'élément sélectionné
     
    %>
     
        <input id="Submit1" name="Submit1" type="submit" value="submit" />  
      </form>
    </body>
     
    </html>
    Qu'en penses tu ?

    Bonne journée et à plus tard.

    Marco.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Balise "<?" ou javascript côté serveur.
    Par cotmar dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 26/12/2008, 18h28

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