Cookies et JavaScript : sauvegarde de champs entre pages web

Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
schweppes41 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   -
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

schweppes41 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   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
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
schweppes41 Messages postés 135 Date d'inscription   Statut Membre Dernière intervention   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
Milly7534 Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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