在页面之间传递数据html5

Passing data between pages html5

本文关键字:数据 html5 之间      更新时间:2023-11-09

我目前正在将一个移动网站升级到Html5/php,以前我有很多不同的php页面,但现在我使用的是一个单独的Html5/php页面。

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

我也在我的新网站上使用Jquery手机,尽管我不熟悉它

我的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,如有帮助,不胜感激。

丑陋但确实有效的解决方案包括构建一个由PHP生成的小JavaScript片段来处理此任务:

请将其放在脚本运行时您希望可用的内容之后(在大多数情况下,它将是文件的末尾)。另一个解决方案涉及用$(document).ready(function(){//…})块包装此脚本:

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

尽管我不鼓励以这种方式使用JavaScript。它违反了不可信JS的规则。基本上,这个解决方案完全依赖于JavaScript,所以它不会在禁用JavaScript的环境中工作(就像大多数内部网一样)。

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