我正在开发一个包含四个网页和一个 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。事实上,我完全不知所措,不知道如何处理这个页面。
如果问题看起来太长,我真的很抱歉。但这花了我一整天的时间,我仍然不知道该怎么做。所以问的比较详细,方便大家帮忙。
非常感谢。非常感谢任何人的帮助。
最佳答案
关于 $_SESSION,您正在尝试检索一个尚不存在的值。 在 display.php 中执行以下操作
获取用户提交的数据到display.php
$selected = $_POST["foodType"];
将用户提交的数据存储到 session 变量中,
$_SESSION["foodType"] = $selected;
现在以后可以通过 $_SESSION["foodType"]
检索 session 数据
此外,添加 <?php session_start(); ?>
在 display.php 的开头,如果你看到 $_SESSION undefined
留言
关于php - 创建购物车时遇到问题 [PHP 和 XML],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32989827/