我有一个显示库存水平的表单,我希望用户能够删除多个产品,因此提供了复选框。代码如下:
echo "<form method='get'>
<input type='submit' name='removestock' value= 'Remove'>
<table class='display' border='0'>
<tr>
<th>Select</th>
<th>Name</th>
<th>Description</th>
<th>Price (£)</th>
<th>Quantity</th>
<th>Size</th>
</tr>";
echo "<tr>";
require ('connection.php');
$query = mysql_query("SELECT * FROM items")or die(mysql_error());
while($results = mysql_fetch_array($query)){
echo "<td> <input type='checkbox' name='item' value='".$results['item_id']."'></td>";
echo "<td>" . $results['name'] . "</td>";
echo "<td>" . $results['description'] . "</td>";
echo "<td>" . $results['price'] . "</td>";
echo "<td>" . $results['quantity'] . "</td>";
echo "<td>" . $results['size_id'] . "</td>";
echo "</tr>";
}
echo "</table></form>";
我的解析代码是......
if(isset($_GET['removestock']) === true){
$errors = array();
$items = $_GET['item'];
echo $items;
}
但由于某种原因,它只显示最后选择的item_id。非常感谢您的帮助! PS。我尝试将复选框名称更改为name =“items []”并实现了一个foreach循环来解析数据,但它仍然无效。
答案 0 :(得分:0)
使用name=item []
复选框。这将为您提供数组。
然后使用var_export ($ items)
答案 1 :(得分:0)
更改此行:
"<td> <input type='checkbox' name='item' value='".$results['item_id']."'></td>";
阅读:
"<td> <input type='checkbox' name='item[" . $results['item_id'] . "]'></td>";
您将在变量中获得所需的数组。
答案 2 :(得分:0)
复选框的名称应为
<input type='checkbox' name='item[]' value='".$results['item_id']."'>
这将为您提供一个数组,您可以使用foreach
阅读答案 3 :(得分:0)
这对我来说总是有用的:
$i =0;
while($results = mysql_fetch_array($query)){
echo "<td> <input type='checkbox' name='item[".$i."]' value='".$results['item_id']."'></td>";
echo "<td>" . $results['name'] . "</td>";
echo "<td>" . $results['description'] . "</td>";
echo "<td>" . $results['price'] . "</td>";
echo "<td>" . $results['quantity'] . "</td>";
echo "<td>" . $results['size_id'] . "</td>";
echo "</tr>";
$i++;
}
一旦发布,item []元素将是一个数组。