Node.js 用javascript获取PHP变量?

Node.js 用javascript获取PHP变量?,node.js,javascript-events,disconnect,Node.js,Javascript Events,Disconnect,我有一个运行在HTML5画布上的javascript游戏。现在我想把一个存储在PHP对象中的变量传递给我的程序。我想要的是js中的一个函数,比如getVariable=function(){脚本,它从PHP获取变量并将其作为字符串返回} 有什么提示吗?Javascript和浏览器不关心您在服务器上使用什么语言来生成HTML/JS,他们关心的只是最终生成的内容 要想做你想做的事,你有两种方法: 在最初生成变量时,将其内容打印到页面 使用AJAX调用服务器上的脚本,该脚本返回值,然后用JavaScr

我有一个运行在HTML5画布上的javascript游戏。现在我想把一个存储在PHP对象中的变量传递给我的程序。我想要的是js中的一个函数,比如
getVariable=function(){脚本,它从PHP获取变量并将其作为字符串返回}


有什么提示吗?

Javascript和浏览器不关心您在服务器上使用什么语言来生成HTML/JS,他们关心的只是最终生成的内容

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

  • 在最初生成变量时,将其内容打印到页面
  • 使用AJAX调用服务器上的脚本,该脚本返回值,然后用JavaScript解析它。但是,如果这样做,则必须使用会话或数据库,或者其他保持页面之间状态的方法

  • @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的更多信息-->


    www.w3schools.com/ajax/‎ 对于ajax教程

    如果我将这些值打印到页面中,我将如何让我的js稍后读取它们?谢谢;)到目前为止,我已经找到了解决这个问题的其他方法,但也许将来我仍然可以使用它。@Valentinkrummenager:如果可以,我总是很乐意帮助:)