Как получить глобальную переменную JavaScript и отправить ее в файл php? - PullRequest
0 голосов
/ 14 мая 2018

Я создаю игру, используя разработку фазера, и хочу отправить результат в базу данных 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 голосов
/ 14 мая 2018

Поскольку вы публикуете данные в своем ajax, вы должны получить данные из глобальной переменной PHP $ _POST

<?php

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

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

?>

и попытаться использовать php-фреймворк, такой как laravel или symfony, для этого проекта, даже прощетакой, как стройная, для тебя было бы лучше, чтобы все было сделано

0 голосов
/ 14 мая 2018

Во-первых, в вашем коде есть небольшая ошибка.

Ваш код:

<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>

Предполагается, что:

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

А вот пример для вас:

<!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>

Лучше использовать ООП (объектно-ориентированное программирование), особенно в игровом проекте.

...