user6184206
user6184206

Reputation:

Variable not changing Javascript

I am trying to create a Pokemon-related website with JS, HTML, CSS. (might be later using PHP). I am creating a variable called 'coins'. This coins variable allows people to buy pokemon. However, when I tested it out a bought a magikarp that costs 100, the coins did not update. But when I type 'coins' into the console, it shows 900. (1000 starting # of coins - 100 coins for magikarp = 900) I don't know why this isn't working. Please help!

var coins = 1000;
var pokemonagainstTutorial = "Magikarp";
var pokemonchosen = [];
//HP For Pokemon - Start
var hpmagikarp = 100;
var hpcharmander = 100;
var hpbulbasaur = 100;
var hpsquirtle = 100;
//HP For Pokemon - End
function comingsoonOnline() {
  swal({
  title: "Coming Soon!",
  text: "PokemonUpgrade doesn't support online\n in Alpha mode. Check back later!",
  type: "warning",
  confirmButtonText: "OK"
});
}
function comingsoonPurchase() {
  swal({
  title: "Coming Soon!",
  text: "PokemonUpgrade doesn't support purchases\n in Alpha mode. Check back later!",
  type: "warning",
  confirmButtonText: "OK"
});
}
//Start ALL functions for pokemon
function gift() {
  //swal("Free!", "Pokemonupgrade release gift! Welcome to pokemonupgrade.com!", "success");
}
function buymagikarp() {
  if(coins >= 100 ) {
    swal("Success", "You bought 1 magikarp!", "success");
    coins -= 100;
    pokemonchosen.push("Magikarp");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buycharmander() {
  if(coins >= 500 ) {
    swal("Success", "You bought 1 charmander!", "success");
    coins -= 500;
    pokemonchosen.push("Charmander");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buybulbasaur() {
  if(coins >= 500 ) {
    swal("Success", "You bought 1 bulbasaur!", "success");
    coins -= 500;
    pokemonchosen.push("Bulbasaur");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buysquirtle() {
  if(coins >= 500 ) {
    swal("Success", "You bought 1 squirtle!", "success");
    coins -= 500;
    pokemonchosen.push("Squirtle");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buyzubat() {
  if(coins >= 250 ) {
    swal("Success", "You bought 1 zubat!", "success");
    coins -= 250;
    pokemonchosen.push("Zubat");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buypidgey() {
  if(coins >= 300 ) {
    swal("Success", "You bought 1 pidgey!", "success");
    coins -= 300;
    pokemonchosen.push("Pidgey");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
function buygastly() {
  if(coins >= 750 ) {
    swal("Success", "You bought 1 gastly!", "success");
    coins -= 750;
    pokemonchosen.push("Gastly");
  } else {
    swal("Error", "Not enough balance", "error");
  }
}
//End All functions for pokemon
//document.getElementById('').innerHTML = \\
//document.getElementById('coinsleft').innerHTML = "Coins: " + coins;
//Tips&Tricks
function tipsandtricks() {
  swal({
  title: "Tips and tricks!",
  text: "Don't only try to buy expensive pokemon, try\n evolving the ones you have right now!",
  imageUrl: "images/magikarp.gif",
});
}
function giveaways() {
swal({
  title: "Giveaways",
  text: "We will do giveaways for special events (holidays, anniversaries, etc.) for either really rare pokemon or pokemon not available in the shop!",
  imageUrl: "images/arceus.gif"
});
}
function battle() {
  if(pokemonchosen.length > 0){   
 swal({
  title: "Start battle?",
  text: "Are you sure you want to start battle?",
  type: "info",
  showCancelButton: true,
  closeOnConfirm: false,
  showLoaderOnConfirm: true,
},
function(){
  setTimeout(function(){

  }, 2000);
});
  } else {
   swal("Error", "You don't have any pokemon to fight with!", "error");
}
}
    function getName() {
    if(localStorage.getItem('coins') === null) {
        var coins = 1000;
        localStorage.setItem('coins', coins);
    } else {
        coins = localStorage.getItem('coins');
    }
    document.getElementById("p1").innerHTML = "Coins: " + coins; 
}
<!DOCTYPE HTML>
<!--
	Photon by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
	<head>
		<title>PokemonUpgrade Offline</title>
		<script src="dist/sweetalert.min.js"></script>
		<style>.sweet-alert fieldset input {
display: none;
}	</style>
		<link rel="stylesheet" type="text/css" href="dist/sweetalert.css">
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1" />
		<!--[if lte IE 8]><script src="assets/js/ie/html5shiv.js"></script><![endif]-->
		<link rel="stylesheet" href="assets/css/main.css" />
		<!--[if lte IE 8]><link rel="stylesheet" href="assets/css/ie8.css" /><![endif]-->
		<!--[if lte IE 9]><link rel="stylesheet" href="assets/css/ie9.css" /><![endif]-->
	</head>
	<body onload="getName();">
	<center>
	<br>
	<img src="images/coins.png" width="30px" height="30px">
	<p id="coinsleft"></p>
	<button onclick="tipsandtricks();">Tips and tricks</button>
	<button onclick="giveaways();">Giveaways</button>
	<p>Buy Pokemon and use them for battle:</p>
	<button onclick="battle();">Battle</button>
	<p id="p1"></p>
	<script src="script.js"></script>
</html>

Note: swal means sweetalert you can check out more information on sweet alert here.

(note: removed code that I felt wasn't important to the subject at hand.)

Upvotes: 1

Views: 301

Answers (1)

dev8080
dev8080

Reputation: 4030

Whenever you update value of coins, update it in the relevant div. It won't update by itself.

coins -= 750;

should be followed by:

document.getElementById("coins-div").innerHTML= coins;

Edit:

To store the data beyond a page refresh you must have server-side scripting/storage (in your case PHP), or if you insist on using javascript, you could use localStorage:

 //for storing...
 localStorage.setItem("coins", coins);


 //for retrieving...
 document.getElementById("coins-div").innerHTML = localStorage.getItem("coins");

Upvotes: 2

Related Questions