【问题标题】:How can I save variables on refresh?如何在刷新时保存变量?
【发布时间】:2014-01-28 02:07:28
【问题描述】:
<!DOCTYPE HTML>
<html>


<head>
    <title>Zautra Levels</title>
    <h2 style="font-family: Trebuchet MS; color: blue;"">Zautra Levels</h2>
    <p> </p>
</head>


<body>

<p>Clickables:</p>
<button id="swag" onclick="lmao()">Gain XP</button> <button id="gold" onclick="getgold()">Get Gold</button> <button id="buyupgrade" onclick="buyupp()">Level Up!</button>
<p> </p>
<div id="total">XP: 0</div>
<div id="goldt">Gold: 0</div>
<div id="upgradess">Level: 0</div>
<div id="upcostt">Required XP: 25</div>



<script>
    var clicks = 0; // How many clicks you have
    var upgrades = 0; // How many upgrades you have purchased
    var upcost = 25; // How much the upgrades cost
    var gold = 0; // How much gold you have

    function updateclicks() { // Declares the function that updates the "Zautra Clicks" Text.
        var v=document.getElementById("total");
        v.innerHTML = 'XP: ' + clicks;
    }

        function updategold() { // Declares the function that updates the "Zautra Clicks" Text.
        var g=document.getElementById("goldt");
        g.innerHTML = 'Gold: ' + gold;
    }

    function updateupgradecounter() { // Declares the function that updates the "Upgrades:" Text.
        var y=document.getElementById("upgradess");
        y.innerHTML = 'Level: ' + upgrades;
    }

    function updateupcost() { // Declares the function that updates the "Upgrade Cost:" Text.
        var z=document.getElementById("upcostt");
        z.innerHTML = 'Required XP:' + upcost;
    }

    var x=document.getElementById("swag"); function lmao() { // When you click the "Click for MOAR Zautra's" Button you get a +1 Click.
        clicks+=1;
        updateclicks();
    }

        var j=document.getElementById("gold"); function getgold() { // When you click the "Click for MOAR Zautra's" Button you get a +1 Click.
        gold+=1;
        updategold();
    }

    var c=document.getElementById("buyupgrade"); function buyupp() {
        if (clicks >= upcost) {
            clicks-=upcost
            upgrades+=1
            upcost*=2
            updateclicks();
            updateupgradecounter();
            updateupcost();
        }
        else
        {
            var clicksdif = upcost - clicks;
            confirm("You need " + clicksdif + " more XP to level up.");
        }
    }
</script>
</body>
</html>

这是我正在开发的游戏的代码。 我正在尝试添加一个按钮,当您按下它时,它会保存所有变量。 如果您是 5 级,拥有 26 XP 和 7 黄金,那么您刷新页面,您仍然拥有这些统计数据,而不是在刷新时丢失它们。

请帮忙!

(是的,我确实意识到代码确实很混乱,但这是一个小问题。我迟早会解决这个问题。)

【问题讨论】:

  • 使用 cookie 或在现代浏览器中 local storage 如果您希望所有内容都存储在客户端
  • 只需在持久数据上使用 localStorage 命名空间: loading: var gold = +localStorage.gold;储蓄:localStorage.gold = 金子;
  • 您是在发布到 java 或 asp.net 网页还是什么?
  • 谁能给我一个例子,或者给我一个模板来说明它在我的代码中的样子?我不知道如何使用 localStorage。它只是让我的黄金说“NaN”
  • 如果你得到 NaN,你很可能用字符串进行数学计算:"Some string" * 3 = NaN

标签: javascript html variables save


【解决方案1】:

我相信实际上比 cookie 更简单的方法是通过 URL 传递值。示例:

<form action="yourPage.php?gold=$amount&level=$whatlevel&experience=$experience" method="POST">

//你的刷新按钮在这里

</form> 

然后在页面重新加载时检索这些变量,使用:gold=$_POST['gold']

另一个选择是使用 GET 方法而不是 POST。 请记住,文件扩展名必须是 php 才能使此代码正常工作。

【讨论】:

    【解决方案2】:

    你可以在 php 中创建一个 cookie:

    setcookie("NameOfTheCookie",$value,$expireTime)
    

    $value 也可以是一个值数组。

    【讨论】:

    • 但是我在哪里可以告诉它要存储什么变量,它们的值是什么?
    猜你喜欢
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多