在页面html5之间传递数据

时间:2012-07-17 00:20:21

标签: javascript php ajax html5

我目前正在升级移动网站,我必须使用Html5 / php,之前我有很多不同的php页面,但现在我使用的是单个html5 / php页面。

在旧网站上,我会通过网址传递变量并使用$_GET来检索它们,尽管我很难在html5中找到一个简单的替代方法。

我也在我的新网站上使用Jquery mobile,虽然我对它不熟悉。

我的html示例如下。

<div data-role="page" data-title="Page One" id="home">
         <div data-position="fixed" data-role="header">
         <h1>Pageone</h1>
    </div>

  <div data-role="content" data-theme="a">
    <ul class="menu">
        <li class="icn_browse"><a href="#browse?wtd=10">Browse</a><span></span></li>

           </ul>
        </div>
    </div>



  <div data-role="page" data-title="Page two" id="browse">
         <div data-position="fixed" data-role="header">
         <h1>Pagetwo</h1>
    </div>

  <div data-role="content" data-theme="a">

<!-- need to access the data from the home page here, more specifically the content of $_GET['wtd'] -->

        </div>
    </div>

所以我需要将数据从#home传递到#browse,任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

丑陋,但肯定有效的解决方案包括构建一个由PHP生成的小型JavaScript代码段来处理此任务:

请在脚本运行时将 AFTER 表示您希望可用的内容(在大多数情况下,它将是文件的结尾。另一种解决方案是使用$(文档)包装此脚本。 ready(function(){// ...}))block:

// Assuming your $_GET['wtd'] contains only an ID to fetch, without '#':
var p = "<?php echo $_GET['wtd']; ?>";
$("#"+p).prepend($("[data-role='content']");

虽然我不鼓励以这种方式使用JavaScript。它违反了unobtrustive JS的规则。基本上,此解决方案完全依赖于JavaScript,因此它不适用于禁用JavaScript的环境(如大多数内部网)。

可能更好的解决方案,不使用JavaScript,但只有PHP是在SGML解析器中解析整个站点并将文档的某些节点移动到正确的位置,然后再次序列化文档。也许你会丢失文档的可读性,但它肯定会奏效。这比使用jQuery的解决方案更复杂,但是如果你有兴趣,我建议你阅读PHP标准库中提供的手册od DOMDocument类:http://nl.php.net/manual/en/class.domdocument.php