1

foreach ループを使用して送信された特定の menu.xml ドキュメントをロードする Web サイトを作成しようとしています。foreach ループは、glob を使用してディレクトリ内のすべての XML ドキュメントを取得し、「name」属性を html リンクに出力します。

これは、それを利用する別のphpドキュメントへのリンクを作成するために使用される特定のXML変数を渡す必要があるまで機能しました。

最初に $_SESSION を使用しようとしましたが、繰り返しごとにループが $_SESSION を上書きするため、使用できませんでした。$_GET と $_POST も試しましたが、フォームで同じ問題に遭遇しました。

これが私のコードです(ずさんなことは無視してください。私はPHPゲームに慣れていません):

foreach(glob("../menus/*xml") as $dom) //grabs each .xml doc in menus/
{
    $menu = simplexml_load_file($dom); //loads the file into $menu
    print "<li>";
    print "<a href = menu.php>{$menu["name"]}</a>"; //links to page menu.php
    print "</li>";
}

ここで必要なのは、リンクがクリックされたときに、個別に読み込まれた XML 変数を渡すことです。

どうすればこれを行うことができますか?

編集:

menu.xml は、menu.xml の内容を表示するページです。

4

2 に答える 2

1

このようなもの?

<?php
foreach(glob("../menus/*xml") as $dom) //grabs each .xml doc in menus/
{
  $menu = simplexml_load_file($dom); //loads the file into $menu
?>
<li>
    <a href="menu.php?name=<?php echo $menu["name"] ?>><?php echo $menu["name"] ?></a>
</li>
<?php
}
?>

変数は$_GET['name']、ページが読み込まれるときにに設定されます。

于 2012-07-24T21:19:54.477 に答える
1

DOM を連想配列に格納できます。

$xml = simplexml_load_file($dom);
$arr_item = array($xml["name"] => $xml);
$menu[] = $arr_item;

フォーム ラインを作成します。

print "<a href = menu.php id='{$xml["name"]}' name='{$xml["name"]}' >{$xml["name"]}</a>";

そして、それを呼び出したいときは、その名前を使用して次を取得できます$dom

$dom_obj = $menu["name"];
于 2012-07-24T21:30:15.260 に答える