javascript - 从 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";
}
对不起我的英语不好..
解决方案
您需要更新全局变量。如果您使用键“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/
推荐阅读
- java - mscorlib.dll 中出现“System.ServiceModel.FaultException”类型的未处理异常 - Java Weblogic 和 C# 应用程序
- python - 在 Google App Engine 中部署 Quart Python 应用程序
- python - 为什么我在 SQL Alchemy 中收到此错误?
- python - 我该怎么做?
- c++ - 虚函数如何工作以及分配时新的返回类型会发生什么?
- javascript - 不同的产品卡片组件将动态传递给轮播我如何将道具传递给通过道具接收的组件
- python - 尝试通过 Python 连接到 Phpmyadmin MySQL 数据库时,SSH 隧道无限挂起
- python - 将 Python 路径从 Anaconda 更改为 Python 3 Mac
- reactjs - Material UI React TextField 高度未正确呈现
- r - arima(p,order=c(2,1,2)) 和 arima(diff(p),order=c(2,0,2) 给出不同的系数