以下代码中的 $disabled 反复被覆盖,例如:
- 项目 1 = 数量 3 复选框 = True
- 项目 2 = 数量 5 复选框 = True
- 项目 3 = 数量 1 复选框 = 假
写入表的值将是:
- 项目 1 = 数量 1
- 项目 2 = 数量 1
- 项目 3 = 数量 1
对于数量,我重用了一个名为 Quantity 的输入字段。所以在第一个实例中,我设置 Quantity = 3,然后我将 Quantity 设置为 7,最后设置为 5。
由于输入字段都具有相同的名称(并且 Quantity 不是数组),$_POST ['Quantity'] 只能保存一个值,最后一个
我想我有答案 - 我需要使用变量 Addbox[] 来存储您要添加的项目 ID - 我也可以使用相同的变量来存储数量。这将创建连续的值对 Addbox[0] 将包含 ItemID,Addbox[1] 将包含 Quantity。依此类推或将数量存储在数组中: Quantity[] - 并按 Addbox[] 处理
问题是我无法成功编辑我的代码以实现上述目标。
//-----------------------THIS IS WHERE THE ITEMS ARE DISPLAYED
if (isset ($_POST['BrowseItem'])){
if (isset ($_SESSION['Username'])) {
$disabled = "";
}
else {
$disabled = "disabled";
}
?>
</form>
<form id="Searchform" name="Searchform" method="post">
<div id="WishlistDiv">
<?php
echo "<table width='705' border='1' > <tr> <th>Item Name</th> <th>Item Description</th><th>Price</th><th>Image</th><th>Quantity</th></tr>";
//-create while loop and loop through result set
while($row=mysql_fetch_array($allresult)){
$Itemname =$row['Item_Name'];
$Itemdesc =$row['Item_Description'];
$ItemID =$row['Item_ID'];
$Price =$row['Price'];
$Image =$row['Image'];
//-display the result of the array in a table
echo "<tr> <td> <a href=\"ManageWishlist.php? id=$ItemID\">" .$Itemname . "</td>";
echo "<td>" . $Itemdesc . "</td>";
echo "<td>" . $Price . "</td>";
echo "<td> <img src =". $Image ." height=70px> </td>";
$i = 1;
if (isset ($_SESSION['Username'])){
echo "<td> <select name='Quantity' />";
// while loop to enable user to select the quantity they want
while ($i<=10) {
echo "<option value=\"" . $i . "\">" . $i . "</option>";
$i++;
}
echo "</select> </td>";
echo "<td> <input type='checkbox' name='Addbox[]' value='".$row['Item_ID']."'/> </td>";
}
else {
echo "<td> <select name='Quantity' />value='"
.$i."' </select> </td>";
echo "<td> Please log in to add this item to your wishlist</td>";
}
}
echo "</table>";
echo "<input type='Submit' name='Add' id='Add' value='Add selected to Wishlist' action='ReturnResult.php' $disabled/> ";
}
}
?>
</p>
</form>
</div>
//---------------------------------------THIS IS THE END OF THE TABLE
这是每行循环
if (isset ($_POST['Addbox'])) {
$items = $_POST['Addbox'];
foreach ($items as &$itemid){
$quantity = $_POST['Quantity'];
echo $quantity;
if ($itemid > 0){
$sql = "INSERT INTO
`wishlist` (`User_ID`,
`Product_ID`,
`Quantity`)
VALUES ($userid, $itemid, $quantity)";
mysql_query($sql);
}