首页 > 解决方案 > 从 PHP 更改 Javascript 变量

问题描述

我真的有一个问题..我尝试用 Javascript 构建一个小游戏,直到现在游戏正在运行..现在我想将 2 个变量保存在 mysql 数据库中并将它们加载回游戏中

保存在数据库中效果很好,加载它们也很有效。我可以在控制台中读取值.. 但我现在真的不知道如何使用它们.. 一切都不起作用.. 请帮助我.. 我真的不同意并想学习它.. 这是我的代码..

更新 嗯我不能让它工作..也许我告诉你我想做什么..也许有一个更简单的方法..

我建造了一个小型“老虎机”。我想保存所有时间旋转的数量......以及所有时间的胜利

在旋转按钮上单击我将 +1 计数到我的“分数”变量.. 在 win +1 到“双胞胎”两者都成功保存在 mysqli 数据库中,因为 javascript 只是客户端......

现在我只需要在加载这个 index.html 时加载 score 和 twins 变量 .. 以及每次旋转之后..

我在 Console.log 中看到了这两个变量,这很好用.. 但我真的不知道如何使用它们,你的回答没有帮助我.. 无法让它工作..

我觉得我该放弃了……

索引.html


<script> openUserTimes(); var score = "" var twins = "" spins.innerHTML = "Alltime Spins : " + score wins.innerHTML = "Alltime Wins : " + twins var doing = false; let status = document.getElementById("status") var info = true; function openUserTimes(username) { $.post( "returndata.php", { name: "Slot" }, function(response) { var score = response.amount var twins = response.times console.log('Retreived score:'+ response.amount ); //<<<<<<<<< i can see the right database entry.. console.log('Retreived twins:'+ response.times ); } //<<<<<<<<< works too.. ); } function saveUserTimes() { $.post("savesettings.php", { name: "Slot", amount: score, times: twins, }, function(data,status){ $( "#saveWarningText" ).fadeIn(100); setTimeout(function(){ $( "#saveWarningText" ).fadeOut(100); }, 3000); }); } .... .... </script>

我的 returndata.php

      .....$conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }


        $name = mysqli_real_escape_string($conn, $_POST['name']);
        $amount = mysqli_real_escape_string($conn, $_POST['amount']);
        $times = mysqli_real_escape_string($conn, $_POST['times']);

        $sql = 'SELECT * FROM usertimes WHERE name ="'. $name. '"';

        $result = $conn->query($sql);
        $response = array();

        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                $response['name'] = $row["name"];
               $response['amount'] = $row["amount"];
                $response['times'] = $row["times"];
            }

        echo json_encode($response);

        } else {
            echo "  0 results";
        }

对不起我的英语不好..

标签: javascriptdatabasevariables

解决方案


您需要更新全局变量。如果您使用键“var”声明新变量,则此值无法在全局范围内更新您的变量。

这是一个非常基本的示例,您可以如何与您的 javascript 进行交互。您需要 JQuery 库,但我相信您已经导入。

html

<button id="mybutton">
Cliquer ici
</button>

<br /><br />

Score :
<div id="score" style="font-size:16px; color:#009900;">
0
</div> 

javascript + jquery

$(document).ready(function() {

   var game1 = Object.create(myGame);
   game1.init();


   $('#mybutton').on('click', function(){
      game1.play(10);
   });

});



const myGame = {

   score: 0,
   twins: "",

   init: function() {
      this.score = 0;
   },

   play: function(score) {
      this.score += score;
      this.updateScore();
   },
   updateScore: function(){
      $('#score').html(this.score);
   }
}

我为你做了一个 jsfiddle: https ://jsfiddle.net/3d96txma/1/


推荐阅读