如何获取JavaScript全局变量并将其发送到php文件?

时间:2018-05-14 01:02:03

标签: javascript php ajax phaser-framework

我正在使用移相器游戏开发构建游戏,我想将分数发送到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页面,因为我只想在游戏完成后立即将分数更新到我的数据库中。有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

首先,您的代码中存在一些错误。

您的密码:

&#13;
&#13;
<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;
&#13;
&#13;

它假设是:

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
  $(document).ready(function() {
    $.ajax({
      // ...
    });
  });
</script>
&#13;
&#13;
&#13;

这是一个例子:

&#13;
&#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;
&#13;
&#13;

最好使用OOP(面向对象编程),尤其是在游戏项目中。

答案 1 :(得分:0)

由于您要在ajax上发布数据,因此您应该获取PHP的$ _POST全局变量数据

<?php

include 'login.php';
$score = $_POST['score'];

echo "<p>". $score. "</p>"; 
//SQL queries

?>

尝试在这个项目中使用像laravel或symfony这样的php框架,即使是像slim这样简单的人也可以更好地完成任务