1

我正在尝试制作一个将加载某个 menu.xml 文档的网站,该文档是使用 foreach 循环发送给它的。foreach 循环使用 glob 获取目录中的所有 XML 文档,然后将“名称”属性打印到 html 链接中。

这一直有效,直到我需要传递用于链接到另一个使用它的 php 文档的特定 XML var。

我首先尝试使用 $_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 回答