你好我是第一次海报。我试图寻找答案,但从已经发布的材料中没有发现任何明显的问题。我需要另一双眼睛,因为我无法弄清楚为什么我的表单数据没有发布。
我正在制作一个使用会话变量来短期存储数据的购物车。最终,在结帐期间,此订单数据将最终确定到数据库中。当我呈现我的购物车内容以供审查时,我需要为我的客户提供更新数量(或删除)的自由。尽可能保持整洁,这里是购物车内容的 html 渲染(没有标题、总数等):
<form action="mas_cart.php" method="post">
<table id="shCart" border="1" width="800px" cellspacing="0">
<tr>
<td align="left">DSC0679</td>
<td align="left">7.2H x 11W Glossy Paper </td>
<td align="center">No</td><td align="center">$55</td>
<td align="center">
<input id="inp_qty" type="text" name="DSC0679_unsigned_7.2H x 11W Glossy Paper $55" value="1" size="3">
</td>
<td align="right">55.00</td>
</tr>
<tr>
<td align="left">MRS5293</td>
<td align="left">7.3H x 11W Glossy Paper </td>
<td align="center">Yes</td>
<td align="center">$55</td>
<td align="center">
<input id="inp_qty" type="text" name="MRS5293_signed_7.3H x 11W Glossy Paper $55" value="1" size="3">
</td>
<td align="right">55.00</td>
</tr>
<tr>
<td align="left">MRS5293</td>
<td align="left">7.3H x 11W Glossy Paper </td>
<td align="center">No</td>
<td align="center">$55</td>
<td align="center">
<input id="inp_qty" type="text" name="MRS5293_unsigned_7.3H x 11W Glossy Paper $55" value="2" size="3">
</td>
<td align="right">110.00</td>
</tr>
</table>
<input type="hidden" name="save" value="true"/>
<input type="image" src="images/save-changes.png" style="border:1px solid rgb(50,50,50)" alt="Save Changes"/>
</form>
这是应该处理更新的PHP代码:
//update section
if(isset($_POST['save'])) {
foreach ($_SESSION['cart'] as $item => $qty) {
if($_POST[$item]==0 || $_POST[$item]=="") {
unset($_SESSION['cart'][$item]); }
else {
$_SESSION['cart'][$item] = $_POST[$item];} }
在执行中,$_POST['save']
正确设置,但$_POST[$item]
返回未定义的索引:
注意:未定义索引:DSC0679_unsigned_7.2H x 11W Glossy Paper $55 in C:\xampp\htdocs\aaa\mas_cart.php 第 57 行
注意:未定义索引:MRS5293_signed_7.3H x 11W Glossy Paper $55 in C:\xampp\htdocs\aaa\mas_cart.php 第 57 行
注意:未定义索引:MRS5293_unsigned_7.3H x 11W Glossy Paper $55 in C:\xampp\htdocs\aaa\mas_cart.php 第 57 行
基本上,后处理中的条件总是呈现为真,因为索引是未定义的,所以更新会吐出错误并清除购物车。我知道让别人看我的代码是可恨的,但我最糟糕的是弄清楚这一点。任何建议将不胜感激!帮助?