【发布时间】:2016-01-04 13:02:06
【问题描述】:
我正在开发一个包含四个网页和一个 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 文件是可扩展的,我们可以添加新的items 或新的categories。
网站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 后,我已将 $_POST[‘foodType’] 的值存储在 $_SESSION[‘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取决于用户的提交
我不知道如何将数据存储在$_SESSIONsuperglobal 中,以便在计算时,我能够唯一地识别比萨的 foodType、sald 或任何随后添加的类型。事实上,我完全不知所措,不知道如何处理这个页面。
如果问题看起来太长,我真的很抱歉。但这花了我一整天的时间,我仍然不知道该怎么做。因此,详细地问了这个问题,以便你们帮助我。
提前非常感谢。任何人的帮助将不胜感激。
【问题讨论】:
标签: php xml session shopping-cart