Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1307 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Enregistrement du choix d'image de fond

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Enregistrement du choix d'image de fond

n°2229215
punisher92
Posté le 27-05-2014 à 12:55:18  profilanswer
 

Bonjour à tous !
 
 
Suite à l'utilisation d'un tutoriel de ce forum intitulé Selecteur d'image de fond, et le mélange d'un autre trouver sur le net j'ai pu obtenir ce que je souhaitais mais un seul hic ! Le choix ne s'enregistre pas et je ne m'y connait pas en script et coockie.
 
Et également, comment faire pour en sélectionné une par défaut ?
 
 
Voici mon code :
 
 

Code :
  1.  <form>
  2. <script language="JavaScript">
  3. function ChangeBackGround(fichier) {
  4. document.body.background=fichier
  5. }
  6. </script>
  7. <input type="button" value="Fond 1" onClick="ChangeBackGround('fond1.jpg')">
  8. <input type="button" value="Fond 2" onClick="ChangeBackGround('fond2.jpg')">
  9. <input type="button" value="Fond 3" onClick="ChangeBackGround('fond3.jpg')">
  10. <input type="button" value="Fond 4" onClick="ChangeBackGround('fond4.jpg')">
  11. </form>


 
 
 
 
Je sais qu'il y a pas grand chose à rajouter dans le script pour que le choix de l'utilisateur reste enregistré dans les coockies alors si vous pouviez m'aider, merci !

mood
Publicité
Posté le 27-05-2014 à 12:55:18  profilanswer
 

n°2229255
OrcusZ
Pro AMD | .Net lover
Posté le 27-05-2014 à 15:40:36  profilanswer
 

Bonjour,
 
Alors pour que ce soit définitif ( sauf nouveau changement de l'utilisateur ) le mieux c'est de passé par une sauvegarde dans un fichier ou BDD.
 
Car les cookie ne sauvegarde que le temps d'une session
 
Sinon si tu veux déjà faire un test avec des cookie voici comment en créé un  
 

Code :
  1. // un cookie qui s'apelle fond, qui a pour valeur fon1.jpg, qui dure 7200sec et se situe à la racine de ton projet
  2. setcookie('fond','fond1.jpg' , time() + 7200,'/');


 
et voici comment l'utiliser
 

Code :
  1. $_COOKIE['fond']


 
Le mieux c'est de faire une function avec un paramètre et la valeur de ton cookie prendrait ce paramètre
 
Bon courage :D
 


---------------
Made you your own sentence without believing that of the others...
n°2229269
dreameddea​th
Posté le 27-05-2014 à 16:25:29  profilanswer
 

Je ne suis pas sûr qu'il se soit lancé dans du PHP...
d'ailleurs la selection du fond est fait en Javascript.
 
Il existe des tutos sur internet sur comment gérer des cookies depuis du javascript (via la variable document.cookie). Par exemple : le lien http://www.w3schools.com/js/js_cookies.asp en parle...

n°2229277
punisher92
Posté le 27-05-2014 à 18:00:24  profilanswer
 

Merci pour vos réponses !
 
Un cookie peut durer bien plus longtemps que ça.
 
Le problème est que je n'arrive pas du tout à intégrer le cookie en javascript :/
 
Je précise que je suis sur un forum type : forumactif ou encore xooit donc je n'utilise pas de php

n°2229317
OrcusZ
Pro AMD | .Net lover
Posté le 28-05-2014 à 08:50:06  profilanswer
 

Je l'ai pas fait en javascript ( déjà j'ai eu du mal en php xD )
 
est-ce que tu as déjà une bride de code pour ton cookie en JS ( je pense qu'au niveau paramétrage ça doit être la même chose qu'en php )
 
Et oui je sais que tu peux le laisser plus longtemps


---------------
Made you your own sentence without believing that of the others...
n°2229323
dreameddea​th
Posté le 28-05-2014 à 09:38:01  profilanswer
 

J'ai donné un lien qui donne des bouts de code pour gérer des cookies en JS dans le browser...

n°2229356
punisher92
Posté le 28-05-2014 à 11:00:17  profilanswer
 

Voilà le script avec le code cookie ajouté mais j'arrive pas à le paramétrer :
 
 
 
<form>
<script language="JavaScript">
 
var expdate = new Date();
expdate.setTime(expdate.getTime() + (1000*3600*24*365));
document.cookie = 'ChangeBackGround' + newstyle + '; expires=' + expdate.toGMTString() + '; path=/';
self.location = self.location;
   
function ChangeBackGround(fichier) {
   
document.body.background=fichier
   
}
   
</script>
   
   
<input type="button" value="Fond 1" onClick="ChangeBackGround('fond1.jpg')">
   
<input type="button" value="Fond 2" onClick="ChangeBackGround('fond2.jpg')">
   
<input type="button" value="Fond 3" onClick="ChangeBackGround('fond3.jpg')">
   
<input type="button" value="Fond 4" onClick="ChangeBackGround('fond4.jpg')">
   
</form>
 
 
Mais ça ne marche pas :/
 
 

n°2229365
dreameddea​th
Posté le 28-05-2014 à 11:54:58  profilanswer
 

Il faut reprendre les fonctions setCookie et getCookie du lien en question.
 
Le code pourrait ressembler à qq chose du style :  

Code :
  1. function ChangeBackGround(fichier) {
  2.     document.body.background=fichier;
  3.     setCookie("backgroundFile",fichier, XXXX);
  4. }
  5. var savedFile = getCookie("backgroundFile" );
  6. if((savedFile !=null) && (savedFile !="" )){
  7.      ChangeBackGround(savedFile );
  8. }
  9. else{
  10.      ChangeBackGround("[fond par defaut].jpg" );
  11. }


Message édité par dreameddeath le 28-05-2014 à 11:55:27
n°2229396
punisher92
Posté le 28-05-2014 à 16:16:01  profilanswer
 

ça ne fonctionne pas :/
 
Est ce le code exact ou il y a encore des modifications à apporter ? Je dois dire que je suis paumé avec ce script, les cookies ce n'est pas aussi facile que ce que l'on croit.

n°2229399
dreameddea​th
Posté le 28-05-2014 à 16:32:03  profilanswer
 

tu as intégré le code des fonctions setCookie et getCookie du lien :
http://www.w3schools.com/js/js_cookies.asp ????
 
J'ai fait un test Unitaire et ça marche pas trop mal (changement de contenu d'un div+boutons pour changer de valeur)

mood
Publicité
Posté le 28-05-2014 à 16:32:03  profilanswer
 

n°2229629
punisher92
Posté le 31-05-2014 à 14:43:48  profilanswer
 

Bon voilà ce que ça donne !
 
 

Code :
  1. <body onload="ChangeBackGround(getCookie('ChangeBackGround'))">
  2.     <form> 
  3.         <input type="button" value="Fond 1" onClick="ChangeBackGround('fond1.jpg')">
  4.         <input type="button" value="Fond 2" onClick="ChangeBackGround('fond2.jpg')">
  5.         <input type="button" value="Fond 3" onClick="ChangeBackGround('fond3.jpg')">
  6.         <input type="button" value="Fond 4" onClick="ChangeBackGround('fond4.jpg')">
  7.     </form>
  8.     <script language="JavaScript"> 
  9.         function ChangeBackGround(fichier) {
  10.             document.body.background=fichier
  11.             var expdate = new Date();
  12.             expdate.setTime(expdate.getTime() + (1000*3600*24*365));
  13.             document.cookie = "ChangeBackGround=" + fichier + ';expires='+expdate.toGMTString() + ';path=/';
  14.         }
  15.         function getCookie(cname){
  16.           var name = cname + "=";
  17.           var ca = document.cookie.split(';');
  18.           for(var i=0; i<ca.length; i++) {
  19.             var c = ca[i].trim();
  20.             if (c.indexOf(name)==0) return c.substring(name.length,c.length);
  21.           }
  22.           return "";
  23.         }
  24.     </script>
  25. </body>


 
 
ça fonctionne bien sauf que le hic c'est que l'image de fond vient se charger en dernier, ce qui n'est pas térrible, il faudra que le premier élément à charger sur la page soit le fond ....
 
Savez vous comment y remédier ?

n°2229646
dreameddea​th
Posté le 31-05-2014 à 20:13:43  profilanswer
 

Le plus simple est d'aller regarder du côté de jquery et la fonction $(document).ready

n°2229649
punisher92
Posté le 31-05-2014 à 21:55:45  profilanswer
 

Je m'y connais malheureusement pas assez :/
 
Puis jQuery il y a longtemps que j'essaye mais sans succès trop complexe à prendre en main pour moi ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Enregistrement du choix d'image de fond

 

Sujets relatifs
bordure image Html / CSS[PHP] probleme #Ressource #Fichier sur manip image
Choix d'un livreProjet en Java's cool, effet sur image
[Javascool] Projet traitement d'image pour le BacImage ne s'affiche pas
Comment afficher un résultat en fonction du choix de l'utilisateurqueqtion sur image.gif
placer image sur panel depuis menu, plusieurs images, non !!! 
Plus de sujets relatifs à : Enregistrement du choix d'image de fond


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR