创建购物车[PHP和XML]时遇到问题
我正在开发一个包含四个网页和一个xml文件的网站。 xml文件包含可食文件的菜单,看起来像这样创建购物车[PHP和XML]时遇到问题,php,xml,session,shopping-cart,Php,Xml,Session,Shopping Cart,我正在开发一个包含四个网页和一个xml文件的网站。 xml文件包含可食文件的菜单,看起来像这样 <menu> <item name="Pizzas"> <category name="Onions" small="6.85" large="10.85"> </category> <category name="Peppers" small="6.85" large="10.85">
<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>
到达display.php后,我将$\u SESSION['foodType']
的值存储在$\u 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);
}?>
xpath('item[@name=“.”.$selected.'']/category')作为$category)
{
回音“”;
回显'.$category['name'].';
回音“ ”;
$\会话[$selected][$i]=“{$category['name']}”;
?>
小的
大的
关于$\u会话,您正在尝试检索一个尚不存在的值。
在display.php中执行以下操作
获取用户提交到display.php中的数据
$selected=$\u POST[“foodType”];
将用户提交的数据存储到会话变量中,
$\u会话[“foodType”]=$selected;
现在,以后可以通过$\u session[“foodType”]
另外,在display.php的开头添加
,以防您看到$\u SESSION undefined
消息,谢谢,伙计。但是我显示的代码片段假设我在$\u SESSION
中存储了适当的值,$\u SESSION
包含在第一页中选择的值。而且我已经使用了session_start
在开头。您能在$_会话中发布存储适当值的代码吗?以下是在会话中存储适当值的代码行$_会话['foodType']=$_post['foodType'];
代码看起来不错……我猜您无法检索此$_会话['foodType']在calculator.php中…您介意也发布它吗?不,我也可以在那里检索$\u会话['foodType']
。我无法解决的问题是,一旦用户选择了比萨饼,$\u会话['foodType']
将包含比萨饼,现在用户返回index.php并选择另一种食物类型,如沙拉和点击enter键,即存储在S_会话['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);
}?>