0

私は現在、さまざまなphpページが多数ある前に、Html5/phpに必要なモバイルWebサイトをアップグレードしていますが、現在は単一の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 にデータを渡す必要があります。

4

1 に答える 1

0

醜いですが、確かに機能するソリューションには、このタスクを処理するために 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 を使用しないより良い解決策かもしれませんが、SGML パーサーでサイト全体を解析し、ドキュメントの特定のノードを適切な場所に移動してから、ドキュメントを再度シリアル化するのは PHP だけです。文書の可読性が失われる可能性がありますが、確実に機能します。jQuery を使用したこのソリューションよりもはるかに複雑ですが、興味がある場合は、PHP 標準ライブラリ ( http://nl.php.net/manual/en/class.domdocument ) で利用可能な DOMDocument クラスのマニュアルを読むことをお勧めします。 php

于 2012-07-17T00:45:34.967 に答える