Cookies et JavaScript : sauvegarde de champs entre pages web

Fermé
Milly7534 Messages postés 26 Date d'inscription jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015 - 24 avril 2015 à 15:30
schweppes41 Messages postés 135 Date d'inscription mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 - 27 avril 2015 à 15:10
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 mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 26
24 avril 2015 à 16:00
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 jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015
26 avril 2015 à 23:21
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
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 jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015
27 avril 2015 à 11:48
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 mercredi 1 avril 2015 Statut Membre Dernière intervention 22 août 2016 26
27 avril 2015 à 12:26
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 jeudi 12 juin 2014 Statut Membre Dernière intervention 27 avril 2015
27 avril 2015 à 12:56
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