-1

以下代码中的 $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);

}
4

1 回答 1

0

最后到了那里,选择框需要是这样的:

<td> <select name="quantity[]">

$i = 1;

while ($i <=10) {

       option value=\"" . $i . "\"">" . $i . "</option>";

       $i++

      }

echo "</select></td>";

然后 if (isset()) 语句需要是:

$count = count ($_POST['Addbox']);

$sql "INSERT INTO `wishlist` (`User_ID`, `Product_ID`, `Quantity`) VALUES ";


for ($i=0; $i < $count; $i++) {

   $item = $_POST['Addbox'][$i];
   $quantity = $_POST['quantity'][$i];

 $sql .= ($userid, $item, $quantity); 

  if ($i !== $count-1){

       $sql .= ", ";

   }
  }

   mysql_query($sql);
 }
于 2013-05-21T15:53:54.263 回答