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

JavaScript Discussion :

Garder les valeurs d'un input suite à un rafraichissement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2003
    Messages : 41
    Par défaut Garder les valeurs d'un input suite à un rafraichissement
    Bonjour,

    J'aimerai conserver les données que l'utilisateur à entrer dans des edits ou sélectionner dans des combobox afin de les réafficher si l'utilisateur rafraichit la page en cours.

    Je précise que le je ne reçois aucune information sur le formalaire (via $_POST en php). C'est simplement garder les information que l'utilisateur en entrés car sur mon formulaire après un F5 les edit sont à leur valur par défaut et les combobox aussi !!!

    Avez-vous une solution pour moi ???

    Merci d'avance

  2. #2
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    hmmm, pas facile ca ...
    il va falloir faire du 'bricolage' pas forcément tres propre mais ca doit être possible.
    il faudrait par exemple ecrire puis lire dans des cookies en javascript, voir dans des fichiers temporaires.
    tu pourrais peut être aussi stocker tes valeurs dans des variables globales du navigateur.

    Le probleme, c'est plutot QUAND (???) enregistrer ces valeurs ?
    Le mieux serait d'arriver à intercepter l'évenement de rechargement de la page (un truc du genre <body onReload="...") , mais je ne suis pas sur que ca soit possible. Si ca n'est pas possible, tu peux essayer de faire ca lors d'un onChange sur tes champs textes, ou meme faire un timer qui sauvegarde regulierement les valeurs qui sont dans les champs, mais la de 'pas forcément tres propre' on passe à 'carrément crade' ...

    Bref, parmis toutes ces idées farfelues, la plus clean (enfin, je veux dire la moins horrible) serait à mon avis de faire une fonction appelée par un evenement onReload sur ta page (je suis pas sur que ca existe, ya peut etre un équivalent) qui écrit dans des cookies, puis tu les lit dans une fonction appelée lors du onLoad (ca je sais que c'est ok).

    Peut être quelqu'un aura-t-il d'autres idées plus saines ? (je l'espere sincerement pour toi)

    PS : à mon avis, la meilleure solution serait encore de demander à tes utilisateurs de pas recharger la page pendant qu'ils saisissent le formulaire (pasque bon, 'faut pas exagerer quand meme .... si ils savent pas ça c'est vraiment des billes en informatiques et à la rigueur faudra bien qu'ils comprennent ça un jour ou l'autre sinon ils iront pas loin). A la rigueur, si ils sont vraiment pas aidés, tu leur met un petit message 'ne rechargez pas cette page pendant que vous saisissez).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2003
    Messages : 41
    Par défaut
    Merci pour toutes ses explications, effectivement c'est pas simple... De plus les utilisateurs doivent faire un rafraichissement.

    pfffff chuis pas sortit de l'auberge... ... mais avec tes soluce je vais essayer de faire Mr Bricolage et de m'en sortir

  4. #4
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    De plus les utilisateurs doivent faire un rafraichissement.
    Pourquoi diable ?
    Tu as peut être une tres bonne raison pour cela, mais je serais curieux de savoir laquelle parceque j'en doute un peu ....
    Il y a surement un moyen plus propre et plus "fait pour ça" de remplir la fonctionnalité attendue sans avoir à recherger bêtement la page sans envoi d'informations.

  5. #5
    Membre confirmé

    Inscrit en
    Mars 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 241
    Par défaut
    L'idée serait de capter l'événement onblur ou onchange de chaque champs du fomulaire et d'enregistrer leur valeur dans un cookie...
    Lors du rechargement de la page tu lis les cookies et tu remplie tes champs...

  6. #6
    Membre émérite
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Par défaut
    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
     
     
    <html> 
    <head> 
    <title>Document sans titre</title> 
    <script>
    function EcrireCookie(nom, valeur)
    {
     
    var argv=EcrireCookie.arguments;
    var argc=EcrireCookie.arguments.length;
    var expires=(argc > 2) ? argv[2] : null;
    var path=(argc > 3) ? argv[3] : null;
    var domain=(argc > 4) ? argv[4] : null;
    var secure=(argc > 5) ? argv[5] : false;
    document.cookie=nom+"="+escape(valeur)+
    ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
    ((path==null) ? "" : ("; path="+path))+
    ((domain==null) ? "" : ("; domain="+domain))+
    ((secure==true) ? "; secure" : "");
     
    }
    function getCookieVal(offset)
    {
     
    var endstr=document.cookie.indexOf (";", offset);
    if (endstr==-1) endstr=document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr)); 
    }
    function LireCookie(nom)
    {
     
    var arg=nom+"=";
    var alen=arg.length;
    var clen=document.cookie.length;
    var i=0;
    while (i<clen)
    {
     
    var j=i+alen;
    if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
     
     
    }
    return null; 
    }
     
    </script>
    </head> 
     
    <body bgcolor="#666666" marginheight="0" marginwidth="0" leftmargin="0" rightmargin="0" onload="remplir()"> 
    <script>
    window.onbeforeunload = confirmExit;
     
     
    function confirmExit()
    {
           	EcrireCookie("_1", document.getElementById('_1').value);
    	EcrireCookie("_2", document.getElementById('_2').value);
    	document.getElementById('_1').value = LireCookie("_1");
    	document.getElementById('_2').value = LireCookie("_2");
    }
    </script>
    <form name="f" id="_f">
    <input type="text" value="" id="_1">
    <input type="text" value="" id="_2">
    </form>
    </body> 
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. garder les valeurs d'un champs texte après ajout d'autres
    Par ke2007 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/09/2007, 09h28
  2. Réponses: 3
    Dernier message: 29/10/2006, 13h05
  3. garder les valeurs de champs de type input
    Par 18Marie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 04/08/2006, 00h42
  4. Réponses: 1
    Dernier message: 04/06/2006, 00h35
  5. [HTML] Garder les valeurs de boutons radio
    Par pjv dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/05/2006, 13h41

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