我正在开发一个包含四个网页和一个xml文件的网站。 menu.xml文件包含食物菜单,看起来像这样
<menu>
<item name="Pizzas">
<category name="Onions" small="6.85" large="10.85">
</category>
<category name="Peppers" small="6.85" large="10.85">
</category>
</item>
<item name="Salads">
<category name="Garden" small="3.50" large="4.50">
</category>
</item>
</menu>
menu.xml文件是可扩展的,我们可以添加新的项或新的类别。
网站index.php
的主页面会在下拉列表中显示(假披萨店)中的所有商品。
解析xml并在下拉菜单中显示项目的代码是:
<form action="display.php" method="post">
<select name="foodType">
<?php
$dom = simplexml_load_file("menu.xml");
foreach($dom->xpath("/menu/item") as $item)
{
?>
<option value="<?php echo $item['name'] ?>" >
<?php echo $item['name']; ?>
</option>
<?php
}
?>
</select>
<input type="submit" value="Let's Eat" />
</form>
到达display.php后,我在$_SESSION[‘foodType’]
中存储了$_POST[‘foodType’]
的值
此页面使用以下代码显示项目的所有类别。
<?php
$selected = $_SESSION['foodType'];
$dom = simplexml_load_file("menu.xml");
$i = 0;
foreach($dom -> xpath('item[@name="' . $selected . '"]/category') as $category)
{
echo '<li>';
echo '<h3>' . $category['name'] . '</h3>';
echo '</li>';
$_SESSION[$selected][$i] = "{$category['name']}";
?>
<form action="calculator.php" method="post">
<table border="1" style="border-collapse:collapse">
<tr>
<th>Small</th>
<th>Large</th>
</tr>
<tr>
<td style="text-align:center;height:20px;"><input type="text" name="small[<?php echo $i ?>]" /></td>
<td style="text-align:center;height:20px"><input type="text" name="large[<?php echo $i ?>]" /></td>
</tr>
</table>
<?php
$i =($i+1);
}?>
到目前为止一切顺利。我遇到的问题是在calculator.php中
本页面应该是:
checkout.php
或index.php
$_SESSION
超全局中,以便在计算时,我能够唯一地识别Pizza,sald的foodType或者随后添加的任何类型。事实上,我完全不知所措,不知道如何处理这个页面。如果问题太长,我真的很抱歉。但它花了我一整天,我仍然无法弄清楚如何去做。因此,详细询问这个问题,以便你们帮助我们 非常感谢提前。任何人的帮助都会非常感激。
答案 0 :(得分:0)
关于$ _SESSION,您正在尝试检索尚不存在的值。 在display.php中执行以下操作
将用户提交的数据提取到display.php中
$selected = $_POST["foodType"];
将用户提交的数据存储到会话变量中
$_SESSION["foodType"] = $selected;
现在可以通过$_SESSION["foodType"]
另外,在display.php的开头添加<?php session_start(); ?>
,以防您看到$_SESSION undefined
消息