使用 Phaser 框架将 Javascript 值发送到 PHP

Send Javascript value to PHP with Phaser framework

我想将 javascript 变量发送到 php,然后从 PHP 我想将其存储在数据库中。

现在,当我在 Google 上搜索时,可以看到很多相关信息。大多数时候我会看到 AJAX,但是当我使用 AJAX 时,此代码不会 运行。我尝试了这个示例 http://www.tutorialspoint.com/ajax/ajax_database.htm 并在 Whosebug 上尝试了一些答案。

可能不行,因为我用的是Phaser这个框架。可能是我尝试的时间太长了,我已经没有想清楚了,所以我需要重新审视一下。

在我的 Phaser 游戏中,我有不同的预制件。一个叫做 gameOver.js,我可以通过这行代码访问分数:

var score = this.game_state.score;

这很简单。好的,现在我必须将它发送到 PHP。我使用了 jQuery 选择器(jQuery.post() 和 jQuery.ajax())和上面的教程,但没有成功。

目前我的 Javascript:

Game.GameOver.prototype.submitScore = function () {

   var ajaxRequest;  // The variable that makes Ajax possible!
   try{

      // Opera 8.0+, Firefox, Safari
      ajaxRequest = new XMLHttpRequest();
   }catch (e){

      // Internet Explorer Browsers
      try{
         ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
      }catch (e) {

         try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
         }catch (e){

            // Something went wrong
            alert("Your browser broke!");
            return false;
         }
      }
   }

   var score = this.game_state.score;
   var queryString = "?score=" + score ;

   ajaxRequest.open("GET", "senddata.php" + queryString, true);
   ajaxRequest.send(null); 
}

这在 senddata.php

$score = $_GET['score'];
echo "score:" . $score;

我想最后一部分没那么容易,但我想不通!所以希望有人能帮助我。

如果您只想向 jQuery 中的页面发送 GET 请求,您应该可以使用如下内容:

Game.GameOver.prototype.submitScore = function () {
    $.ajax({
        url: 'senddata.php?score=' + this.game_state.score
    })
    .done(function () {
        console.log('done');
    })
    .fail(function () {
        console.log('failed');
    });
}

这与 jQuery 2.2.0 和 Phaser 2.4.4 的预期一样有效。