我正在创建一个回合制的中文跳棋游戏。在正文中,我添加了 onload 函数,该函数向服务器发送 ajax 请求以接收连接的玩家编号。但似乎响应总是返回相同的数字。我尝试使用 ,但没有使它工作。$GLOBALS我希望它是如何工作的:当我打开一个游戏的新窗口时,连接会得到下一个数字,简单的+1。JS代码位于主网页中,使用辛福尼。代码的一些片段:<body onload="getPlayerNum()">var playerNumber = 0;function getPlayerNum(){ $.ajax({ url: "http://localhost:8000/ajaxPlayer", method: "POST", data: {"playerNumber": playerNumber}, success: function(data) { console.log(data); } });}/** * @Route("/ajaxPlayer") */public function ajaxPlayer(Request $request){ if ($request->isXmlHttpRequest()){ if (isset($GLOBALS["number"])){ $playerNumber = $GLOBALS["number"] + 1; $GLOBALS["number"] = $playerNumber; } else { $playerNumber = 1; $GLOBALS["number"] = $playerNumber; } return new Response($playerNumber); }}
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
全局变量(如您在 中设置的变量)仅在浏览器请求 时执行的 PHP 脚本中是“全局”变量。PHP 不会在下次调用该脚本时自动记住它们。$GLOBALS["number"]
http://localhost:8000/ajaxPlayer
如果您使用会话变量,例如 ,那么它将出现在您的浏览器在浏览会话期间请求的任何脚本中(默认情况下,这意味着直到您关闭浏览器)。$_SESSION["number"] = $playerNumber;
然而,我猜你打算让多个玩家从不同的电脑一起玩,你需要的不仅仅是:你需要一种在不同会话之间共享数据的方法。
最常见的方法是使用数据库。如果您正在Symfony中执行整个应用程序,那么您可能希望从阅读教义文档开始。
- 1 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消