Système de sauvegarde en local

Résolu
pierrotrolo Messages postés 3 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 22 avril 2014 - 21 avril 2014 à 16:41
pierrotrolo Messages postés 3 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 22 avril 2014 - 22 avril 2014 à 11:13
Bonjour !
Je souhaite créer un système de sauvegarde pour un jeu que je suis entre de créer. Lorsque je réouvre mon site et que je clique sur le bouton "récupérer", mes variables sont bien récupérées. Cependant, lorsque je clique sur le bouton "jouer", mes variables reprennent leurs valeurs par défaut, c'est à dire 500 et 0, et non les valeurs que j'ai enregistré. J'ai donc créer une fonction permettant de savoir si une variable est stockée afin de remplacer la variable par défaut si nécessaire. Mais cette fonction ne marche pas. Je vous demande donc votre aide ! Merci d'avance !



<html>

<head>
<link rel="stylesheet"/>

<meta charset="utf-8" />
<title>test 5</title>


</head>

<body onLoad="verification()">

<form>

<script language="javascript">


var vie=500 ;
var pollution=0 ;
var vie=verification() ;

function verification () {
return localStorage.getItem('vie') !=undefined ? localStorage.getItem('vie') : 500;
}

function changer(increment) {
vie+=increment;
document.getElementById('vie').value=vie;
}

function modifier(increment) {
pollution+=increment;
document.getElementById('pollution').value=pollution;
}

</script>

<input type="button" value="jouer" onClick="changer(-1); modifier(+2)" ; >
<input type="text" id="vie" value="500">
<input type="text" id="pollution" value="0">
<input id="stockage" type="button" value="Mémoriser">
<input id="lecture" type="button" onClick="verification" value="Récupérer" >

<script language="javascript">

document.getElementById('vie').value=vie;
document.getElementById('pollution').value=pollution;

</script>

</form>

<script>

// Méthode de stockage
document.getElementById('stockage').onclick = function() {
if(typeof localStorage!='undefined') {
var sauvegarde = {
vie:document.getElementById('vie').value,
pollution:document.getElementById('pollution').value,
};
localStorage.setItem('coord',JSON.stringify(sauvegarde));
alert("Mémorisation effectuée");
} else alert("localStorage n'est pas supporté");
} ;

// Méthode de lecture
document.getElementById('lecture').onclick = function() {
if(typeof localStorage!='undefined') {
var sauvegarde = JSON.parse(localStorage.getItem('coord'));
document.getElementById('vie').value = sauvegarde.vie;
document.getElementById('pollution').value = sauvegarde.pollution;
alert("Lecture effectuée");
} else alert("localStorage n'est pas supporté");
} ;



</script>

</body>

</html>

4 réponses

@karamel Messages postés 1854 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 8 avril 2024 153
Modifié par kazma le 21/04/2014 à 18:00
bonjour

essai comme ceci

<script>
  
   // Méthode de stockage
   document.getElementById('stockage').onclick = function() {
   if(typeof localStorage!='undefined') {
   
   localStorage.vie=document.getElementById('vie').value,
   localStorage.pollution=document.getElementById('pollution').value,
   
   alert("Mémorisation effectuée");
   } else alert("localStorage n'est pas supporté");
   } ;
   
   // Méthode de lecture
   document.getElementById('lecture').onclick = function() {
   if(typeof localStorage!='undefined') {
   
   document.getElementById('vie').value = localStorage.vie;
   document.getElementById('pollution').value = localStorage.pollution;
   alert("Lecture effectuée");
   } else alert("localStorage n'est pas supporté");
   } ;  
  </script> 
 

cours Forest cours !
0
pierrotrolo Messages postés 3 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 22 avril 2014
21 avril 2014 à 19:22
Bonsoir,
Merci de votre réponse rapide ! J'ai donc essayé cela, mais malheureusement, mais le problème est toujours là. Je pense que le problème de vient pas de la sauvegarde ou de la récupération de celle-ci, mais plutôt de la fonction "verification"


<html>

<head>
<link rel="stylesheet"/>

<meta charset="utf-8" />
<title>test 6</title>


</head>

<body onLoad="verification()">

<form>

<script language="javascript">


var vie=500 ;
var pollution=0 ;


function changer(increment) {
vie+=increment;
document.getElementById('vie').value=vie;
}

function modifier(increment) {
pollution+=increment;
document.getElementById('pollution').value=pollution;
}

</script>

<input type="button" value="jouer" onClick="changer(-1); modifier(+2)" ; >
<input type="text" id="vie" value="500">
<input type="text" id="pollution" value="0">
<input id="stockage" type="button" value="Mémoriser">
<input id="lecture" type="button" onClick="verification" value="Récupérer" >

<script language="javascript">

document.getElementById('vie').value=vie;
document.getElementById('pollution').value=pollution;

</script>

</form>

<script>

// Méthode de stockage
document.getElementById('stockage').onclick = function() {
if(typeof localStorage!='undefined') {

localStorage.vie=document.getElementById('vie').value,
localStorage.pollution=document.getElementById('pollution').value,

alert("Mémorisation effectuée");
} else alert("localStorage n'est pas supporté");
} ;

// Méthode de lecture
document.getElementById('lecture').onclick = function() {
if(typeof localStorage!='undefined') {

document.getElementById('vie').value = localStorage.vie;
document.getElementById('pollution').value = localStorage.pollution;
alert("Lecture effectuée");
} else alert("localStorage n'est pas supporté");
} ;

</script>



</body>

</html>
0
@karamel Messages postés 1854 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 8 avril 2024 153
Modifié par kazma le 21/04/2014 à 23:00
au click a l'appel de la fonction met juste le chiffre puis dans la fonction il faut faire un parseInt qui transforme une chaine de caractère en chiffre le probleme vient de la


function changer(increment) { 
vie+=parseInt(increment);
document.getElementById('vie').value=vie;
}

function modifier(increment) {
pollution-=parseInt(increment);
document.getElementById('pollution').value=pollution;
}

</script>

<input type="button" value="jouer" onClick="changer(1); modifier(2)" ; >


il y a aussi un probleme au niveau du localStorage il faut aussi faire un parseInt et transmettre les valeurs aux variables vie et pollution et au niveau du if il faut testé si ces valeurs existe deja dans le localStorage.

document.getElementById('lecture').onclick = function() {
     if(typeof localStorage!='undefined'  && localStorage.vie) {
     
     document.getElementById('vie').value = localStorage.vie;
     document.getElementById('pollution').value = localStorage.pollution;
     vie=parseInt(localStorage.vie)
     pollution=parseInt(localStorage.pollution)
     alert("Lecture effectuée");
     } else alert("localStorage n'est pas supporté");
     } ;  



le code en entier

<html>

 <head>
  <link rel="stylesheet"/>
  
  <meta charset="utf-8" />
  <title>test 6</title>
 
  
 </head>
 
 <body onLoad="verification()">
 
  <form>
  
  <script language="javascript">
   
   
   var vie=500 ;
   var pollution=0 ;
   
   
   function changer(increment) { 
   vie+=parseInt(increment); 
            document.getElementById('vie').value=vie;
            }
   
            function modifier(increment) {
            pollution-=parseInt(increment);
            document.getElementById('pollution').value=pollution;
            }
       
  </script>
  
  <input type="button" value="jouer" onClick="changer(-1); modifier(2)" ; >
        <input type="text" id="vie" value="500">
        <input type="text" id="pollution" value="0">
  <input id="stockage" type="button" value="Mémoriser">
  <input id="lecture" type="button" onClick="verification" value="Récupérer"  >
   
        <script language="javascript">
            
   document.getElementById('vie').value=vie;
            document.getElementById('pollution').value=pollution;
       
    </script>
    
    </form>
   
  <script>
  
   // Méthode de stockage
     document.getElementById('stockage').onclick = function() {
     if(typeof localStorage!='undefined') {
     
     localStorage.vie=document.getElementById('vie').value,
     localStorage.pollution=document.getElementById('pollution').value,
     
     
     alert("Mémorisation effectuée");
     } else alert("localStorage n'est pas supporté");
     } ;
     
     // Méthode de lecture
     document.getElementById('lecture').onclick = function() {
     if(typeof localStorage!='undefined'  && localStorage.vie) {
     
     document.getElementById('vie').value = localStorage.vie;
     document.getElementById('pollution').value = localStorage.pollution;
     vie=parseInt(localStorage.vie)
     pollution=parseInt(localStorage.pollution)
     alert("Lecture effectuée");
     } else alert("localStorage n'est pas supporté");
     } ;  
  
  </script>
   
  
  
 </body>

</html>


cours Forest cours !
0
pierrotrolo Messages postés 3 Date d'inscription lundi 21 avril 2014 Statut Membre Dernière intervention 22 avril 2014
22 avril 2014 à 11:13
Bonjour !
Votre code marche parfaitement bien ! Merci beaucoup pour votre aide !
0
Rejoignez-nous