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.NET Discussion :

initialiser une variable session avec javascript


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Points : 109
    Points
    109
    Par défaut initialiser une variable session avec javascript
    bonjour,
    comme le titre l'indique .je souhaite savoir comment puis-je intiasliser une variable session avec un fonction javascript .

    du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    fonction initialise () {
    Session["test"]="blablabla";
     
    var verif=session["test"];
    alert (verif);
     
    }
    je sais que le code est faut ,car je l'ai deja testé :p

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    tu ne peux pas initialiser une variable de session dans une fonction javascript.
    Ta variable de session est coté serveur, alors que ta fontcion javascript est coté client.

    Si tu dois stocké une variable de ton formulaire en session, il faut que tu stockes dans un champs caché(ou un un autre type d'ailleurs), et lorsque que ton formulaire est soumis au serveur, tu récupères ta variable que tu stocke en session.

  3. #3
    Membre régulier
    Homme Profil pro
    consultant java
    Inscrit en
    Août 2010
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : consultant java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 325
    Points : 109
    Points
    109
    Par défaut
    peut-tu me donné une idée svp,

    nb : j'utilise la mvc2

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne connais pas la MVC2

  5. #5
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    C'est apparemment possible en passant par AJAX et par un Web Service ASMX. Voici le lien qui t'en dira plus : http://forums.asp.net/post/4014066.aspx
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Que veux-tu faire d'une variable de session côté client ?
    Il faut que tu nous en dises plus car il y a plusieurs manières de récupérer côté serveur une variable js, ce qui est à mon avis la piste la plus appropriée pour ce que tu sembles vouloir faire :

    - dans ta fonction "initialise()", tu affectes une valeur donnée à une variable
    - tu affectes cette variable au contenu d'un hiddenfield
    - tu récupères au prochain postback la valeur de cet Hiddenfield.

    C'est la solution la plus simple mais en fonction de tes contraintes il peut y en avoir d'autres.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 110
    Points
    110
    Par défaut
    Initialiser une variable Session en JS c'est possible à condition que la fonction initialise () soit appelée au chargement de la page. Par contre le code ca sera plutôt comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fonction initialise () {
    <% Session["test"] = "blablabla"; %>
    var verif='<%= Session["test"] %>'
    alert (verif);
     
    }
    Code testé et valide. Mais je précise bien que ca doit être appelé au chargement de la page et non pas coté client car et comme à précisé gcorbineau la variable Session est un objet coté serveur.

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2017
    Messages : 81
    Points : 132
    Points
    132
    Par défaut
    Tu as deux types de storage dans ton navigateur :
    - Local Storage
    - Session Storage

    Pour ton cas n'hésites pas à utiliser Session Storage pour pouvoir stocker n'importe quelle propriété (y compris des objets JSON)

    Pour plus d'informations tu peux te diriger vers : https://developer.mozilla.org/fr/doc...sessionStorage

  9. #9
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Bonjour ,

    J'ai déjà dû avoir à le faire. Bon ... ça vaut ce que ça vaut, je suis parti sur un appel ajax pour appeler le serveur.

    Dans mon js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $('.lnkConsulter').click(function () {
                $.ajax({
                    url: '@Url.Action("SetSession","NomDuController")',
                    type:'GET'
                });
                 // [...]
            });
    Dans mon controlleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [WebMethod(EnableSession = true)]
            public void SetSession()
            {
                Session["IsSearchNeeded"] = true;
            }
    c'est peut être un peu sale et peu recommandé mais ça fait le boulot .

    Bon code.
    throw new NoSignatureException();

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Ton problème sera aussi de gérer le fait qu'un utilisateur pourrait ouvrir plusieurs onglets de ton application web. Quid des différents onglets lors d'un refresh...

  11. #11
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Je viens de voir que l'on déterre un sujet de 2012 ...
    throw new NoSignatureException();

  12. #12
    Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Je viens de voir que l'on déterre un sujet de 2012 ...
    Oui, ça m'arrive souvent de vouloir aider en répondant, avant de voir que le sujet est enterré. Cependant, ce n'est pas peine perdue, le problème peut être récurrent pour d'autres utilisateurs. Donc pas de panique. :-)
    Pour ma part je suis tombé sur ce sujet car j'ai en effet ce "problème" : vouloir ajouter une variable de session au moment où l'utilisateur clique sur un lien, avant même de quitter la page. Car pour l'instant ma session est initialisée trop tard dans le code et ça ne fonctionne qu'avec une étape de retard (soit en cliquant ailleurs, soit en rechargeant la page). Je ne peux pas changer mon code car j'ai fait un include_once(...) dans lequel la session est initialisée, mais elle devrait être utilisée avant la ligne qui inclut mon fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <li onclick=\"document.location.href='gallery.php?gal=".$gallery['gal_id']."';\">
    // Et là, l'utilisateur quitte la page actuelle pour arriver à la galerie souhaitée, mais en arrivant, le menu de gauche ayant été lu avant la galerie qui initialise la session, le menu reste encore sur l'ancienne variable.
    Donc en quittant la page, je devrais ajouter un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <li onclick=\"document.location.href='gallery.php?gal=".$gallery['gal_id']."'; initialise(galid);\">
    // Ainsi le menu reste déroulé, les autres s'enroulent dans le menu de gauche.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Ce n'est pas possible. Javascript = Coté client et Session = Coté serveur. Tu pourras toujours bricoler un truc en faisant un callback (ajax) mais ce n'est vraiment pas propre.
    Ton problème n'est pas la session mais ton menu qui se charge mal. De plus include_one c'est du PHP non ? quel rapport avec .Net ?

Discussions similaires

  1. Réponses: 15
    Dernier message: 25/10/2012, 12h32
  2. Réponses: 1
    Dernier message: 14/06/2006, 17h53
  3. Réponses: 5
    Dernier message: 14/06/2006, 16h35
  4. Réponses: 4
    Dernier message: 19/04/2006, 16h03
  5. Réponses: 6
    Dernier message: 04/04/2006, 13h12

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