Cookies et JavaScript : sauvegarde de champs entre pages web

Milly7534 Messages postés 29 Statut Membre -  
schweppes41 Messages postés 140 Statut Membre -
Bonjour,

J'ai actuellement un problème de programmation dû au fait que je ne m'y connais pas beaucoup en cookies...
J'ai deux pages où l'utilisateur remplit différents champs avant validation, les champs sont les mêmes mais le rendu est différent.
Actuellement, en passant d'une page à l'autre, l'utilisateur perd les champs qu'il a rempli, j'aimerais donc les conserver en n'utilisant que le javascript.

Dans le javascript, je récupère les données des champs dans un tableau, puis je crée un cookie qui va le stocker et après, c'est là que je coince.
Comment, lors du changement de page, tester que le cookie existe et si oui, remplacer les champs vides par les données sauvegardées ?

Voici un exemple de ce que j'ai jusque là :


var champA = '-';
if (jQuery("#maDiv #idChamp").val() != ''){
champA = jQuery("#maDiv #idChamp").val();
}

var tab = [champA];
var json_str = JSON.stringify(tab);

createCookie('myCookie', json_str, 0);


Merci d'avance !

1 réponse

  1. schweppes41 Messages postés 140 Statut Membre 27
     
    Bonjour,

    En utilisant le plugin Jquery Cookie :

    Plus d'info ici :
    https://stackoverflow.com/questions/1458724/how-do-i-set-unset-a-cookie-with-jquery

    ça devrait t'aider !
    0
    1. Milly7534 Messages postés 29 Statut Membre
       
      Merci, j'ai trouvé finalement ce que je cherchais mais il me manque un point : comment gérer le changement du cookie sur la même page dans le cas où l'utilisateur remplit un champ supplémentaire (ou en enlève un) ?
      0
    2. schweppes41
       
      Tu ne vas pas mettre à jour le cookie à chaque fois que l'utilisateur rentre un cookie.

      à la fin du formulaire, tu fais une vérifications de tous les champs obligatoires et uniquement si c'est valide, tu mets à jour ton cookie puis tu passes à ton suivant formulaire.

      Sur l'url que j'ai donné dans ma réponse précédente, tu as des exemples avec et sans jQuery de manipulations de cookie.
      0
    3. Milly7534 Messages postés 29 Statut Membre
       
      D'accord, merci !
      J'ai un autre problème cependant et qui est aléatoire : les champs textes ne sont pas pré-remplis, quand le cookie existe, quand je passe de la page A à la page B alors que l'inverse fonctionne...
      J'utilise ceci pour changer les champs :
      jQuery("#maDiv #idChamp").val(monTableauJs[element]);


      Un console.log de cette ligne me dit pourtant que la valeur a bien été récupérée...
      0
    4. schweppes41 Messages postés 140 Statut Membre 27
       
      Si tu as ton cookies, à l'initialisation de la page, tu récupères les infos du cookie et c'est toi qui remplie les champs en JS
      0
    5. Milly7534 Messages postés 29 Statut Membre
       
      C'est bien ce que je fais ci-dessous et si je trace ce que contiennent les "jQuery", c'est bien les champs extraits du cookie. Je ne comprends pas pourquoi il n'y rien "visuellement".


      //Si le cookie existe
      if (document.cookie.indexOf('myCookie') != -1) {
      //On le recupere
      var json_str = getCookie('myCookie');
      var arr = JSON.parse(json_str);

      //Remplacement des champs
      jQuery("#maDiv #idChamp1").val(arr[0]);
      jQuery("#maDiv #idChamp2").val(arr[1]);
      jQuery("#maDiv #idChamp3").val(arr[2]);
      }
      0