JeuWeb - Crée ton jeu par navigateur
[jQuery] Mémoriser les champs de formulaire - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [jQuery] Mémoriser les champs de formulaire (/showthread.php?tid=2292)



[jQuery] Mémoriser les champs de formulaire - Sephi-Chan - 08-07-2008

[jQuery] Mémoriser les champs de formulaire
Bonjour à tous,

Je vais vous présenter un script qui vous permettra, à l'aide de Javascript (et, en l'occurrence, de jQuery), d'améliorer le confort d'utilisation de vos pages. Ce script très simple permet en effet de conserver dans des cookies la valeur des champs (que l'on choisit) de texte d'un site.

Note : Je ne suis pas l'auteur de ce script. Je l'ai trouvé au hasard de mes promenades sur le Web. Je l'ai simplement remis en forme et commenté pour en expliquer le fonctionnement.


Script
Code PHP :
<?php 
function saveField(selector){

$(
selector).each(function(){

/*
* Si un élément ayant le même attribut name est enregistré
* dans un cookie, on lui affecte la valeur de ce dernier.
*/
var name = $(this).attr('name');
if($.
cookie(name)){
$(
this).val($.cookie(name));
}

/*
* On sauvegarde un cookie portant le nom du champ
* et sa valeur dès que celui-ci est modifié.
*/
$(this).change(function(){

$.
cookie(
name,
$(
this).val(),
{
path: '/',
expires: 365
}
);

});

});

}

Pour utiliser le script, il suffit alors d'inclure le fichier Javascript contenant cette fonction, puis d'appeler la fonction pour chaque champ que l'on souhaite conserver en mémoire.

Il est également nécessaire d'avoir inclus la librairie jQuery et son plugin jquery.cookie.js.


Exemple d'utilisation

L'exemple suivant permettra de mémoriser le contenu du champ de texte portant le nom username. Notons que si l'on utilise ce fragment de code sur la page d'inscription et de connexion (en supposant que le champ username existe dans ces deux pages), la même valeur sera utilisée, c'est là tout l'intérêt de la technique.

Code PHP :
<?php 
$(document).ready(function(){

saveField('[name=username]');

});


Pour conclure, je dirais que ce système gagne à être amélioré un peu, notamment si l'on souhaite permettre à celui-ci de mémoriser la valeur des listes de sélection. Il est également à noté que la taille des Cookie étant limitée, il n'est pas possible de stocker une chaîne dépassant les 4 ko.


Je vous remercie de m'avoir lu, et j'espère que ce script pourra vous être utile.


Sephi-Chan