0

我有一个在 HTML5 画布中运行的 Javascript 游戏。现在我想将一个存储在 PHP 对象中的变量传递给我的程序。我想要的是我的 js 中的一个函数,比如getVariable = function(){script that gets the variable from PHP and returns it as a string}

有什么提示吗?

4

2 回答 2

1

@Valentin - 只需使用 javascript ajax 调用(如果您愿意,也可以使用 jquery 调用)从 php 脚本中获取值。如果您的游戏对不同的玩家有不同的值,您可以启动一个会话并在多次调用脚本时保留这些值。例如 -

假设您想从 player.php 中获取玩家的健康状况,看起来像

 session_start();//start the session
 if(!isset($_SESSION['health']))
    $_SESSION['health'] = $var;//If there is no value for player health in the session
                               //initialize the default value
 switch($_GET['x']){
 case 'health' :
        echo $_SESSION['health'];
        break;
 default       :
        echo $var;
        break;
 }
?>

相应的纯javascript将是-

var health;
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  } 
    xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    health=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","player.php?x=health",true);
xmlhttp.send();

你可以使用很棒的 jQuery 以更简单的方式做同样的事情 -

var health;
var reqData=["x" : "health"];
var xhrObj = $.get("player.php",x)
    .done(function( response ) { 
      health=response;//The echo text from server
    })
    .fail(function() {
      alert('error'); 
    });

您可以在此处了解有关 jquery 和 ajax 的更多信息 -->

jQuery API

www.w3schools.com/ajax/用于 ajax 教程

于 2013-05-20T23:26:56.470 回答
0

Javascript 和浏览器并不关心你在服务器上使用什么语言来生成 HTML/JS,他们只关心最终生成了什么。

做你想做的事,你有两种方法:

  1. 最初生成变量时,将变量的内容打印到页面。
  2. 对服务器上的脚本使用 AJAX 调用来回显该值,然后在 JavaScript 中对其进行解析。但是,如果这样做,则必须使用会话或数据库,或其他在页面之间保持状态的方法。
于 2012-04-16T17:56:43.703 回答