我正在尝试创建一个网站,它将加载某个menu.xml文档,该文档是使用foreach循环发送给它的。 foreach循环使用glob来获取目录中的所有XML文档,然后将“name”属性打印到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内容的页面。
答案 0 :(得分: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']
。
答案 1 :(得分: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"];