我正在使用移相器游戏开发构建游戏,我想将分数发送到mySQL数据库,但JS和PHP不直接通信。我正在使用AJAX,但我被卡住了。这是我的代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Star Runner</title>
<script>window.score=0;</script>
<script src="phaser.js"></script>
</head>
<body>
<script type="text/javascript">
// game goes here
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
$(document).ready(function(){
$.ajax({
url: "inscore.php",
type: 'POST',
data: 'score='+score,
cache: false,
success: function(data) {
alert(data);}
});
});
</script>
<h1 style="color:white">Star Runner</h1
</body>
</html>
我的php文件'inscore.php'将是:
<?php
include 'login.php';
$score = $_GET['score'];
echo "<p>". $score. "</p>";
//SQL queries
?>
我不确定是否应将此页面链接到php页面,因为我只想在游戏完成后立即将分数更新到我的数据库中。有人可以帮助我吗?
答案 0 :(得分:1)
首先,您的代码中存在一些错误。
您的密码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
// code here will not run
$(document).ready(function() {
$.ajax({
// ...
});
});
</script>
&#13;
它假设是:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.ajax({
// ...
});
});
</script>
&#13;
这是一个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Star Runner</title>
<script src="phaser.js"></script>
</head>
<body>
<h1 style="color:white">Star Runner</h1>
<div>
Game stage ...
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
// game goes here
var Game = {
score: 0,
run: function() {
// your awesome code
if (true) {
this.gameOver();
}
},
gameOver: function() {
var _this = this;
// send the request
$.ajax({
url: "inscore.php",
type: 'POST',
data: 'score=' + this.score,
cache: false,
success: function(data) {
// balabala
console.log(_this);
}
});
}
};
// Run the game
Game.run();
</script>
</body>
</html>
&#13;
最好使用OOP(面向对象编程),尤其是在游戏项目中。
答案 1 :(得分:0)
由于您要在ajax上发布数据,因此您应该获取PHP的$ _POST全局变量数据
<?php
include 'login.php';
$score = $_POST['score'];
echo "<p>". $score. "</p>";
//SQL queries
?>
尝试在这个项目中使用像laravel或symfony这样的php框架,即使是像slim这样简单的人也可以更好地完成任务