0

我正在制作一个 HTML5 游戏,每个级别都有一个新的 HTML 页面。每个级别的结果都存储在一个 JS 变量中。

如何使用 URL 将该信息传递到下一页?

我在想类似的东西

www.example.com/level5.php?lvl1=10&lvl2=15&lvl3=13

等等。

如何将 JS 变量值放入这种类型的地址中?

我不需要用JS访问这些信息,但我只需要添加信息。

谢谢!

4

4 回答 4

0

没有 jQuery:

var lvl1 = "10";
var lvl2 = "15";
window.location.href = "www.example.com/level5.php?lvl1="+lvl1+"&lvl2="+lvl2;

然后从这个 URL 使用 GET 在 PHP 中创建变量:

$lvl1 = $_GET['lvl1'];
$lvl2 = $_GET['lvl2'];
于 2013-02-17T08:00:42.343 回答
0

您可以使用以下代码段访问 Javascript 中的 $_GET-Variables:

(function(){ // Import GET Vars
   document.$_GET = [];
   var urlHalves = String(document.location).split('?');
   if(urlHalves[1]){
      var urlVars = urlHalves[1].split('&');
      for(var i=0; i<=(urlVars.length); i++){
         if(urlVars[i]){
            var urlVarPair = urlVars[i].split('=');
            document.$_GET[urlVarPair[0]] = urlVarPair[1];
         }
      }
   }
})();

要访问它们,请使用:

document.$_GET['lvl1']

信用: http: //failchad.blogspot.ch/2009/01/accessing-get-variables-in-javascript.html

要添加信息,请使用来自@tommyf

于 2013-02-17T17:38:11.510 回答
0

包含每个结果的会话变量怎么样?只要会话处于活动状态(这通常意味着只要浏览器处于打开状态),分数就会在每个级别结束时更新。如果会话中没有分数,则应加载第一级。为了保存进度,您可以提供用户下次需要输入的“进度键”。

作为替代方案,如果您更喜欢只使用 javascript,您可以查看HTML5 LocalStorage。如果您考虑到浏览器已经具有 HTML5 兼容性,那么您的情况可能是一个不错的选择。

GET 参数的问题在于,无论您选择在 url 中存储高分的名称如何,人们都会进行调查并很快能够更改他们的高分以解锁高分带来的任何奖励,甚至达到最高分。垃圾邮件列表(即:排名第一:购买此 blablabla $xx blabla.com(9999999999 点))。LocalStorage 更难作弊(但很容易),而会话变量更难作弊。

于 2013-02-17T17:56:06.187 回答
0

您可以使用 jQuery 更改链接的“href”属性值:

$("#lvl2link").attr("href","www.example.com/level2.php?lvl1=" + score);

不用jQuery也能达到同样的效果。

这是一个 JSFiddle:http: //jsfiddle.net/ZPv93/1/

于 2013-02-17T07:45:13.673 回答