将多个复选框值解析为php数组

时间:2014-02-22 23:22:48

标签: php arrays forms checkbox

我有一个显示库存水平的表单,我希望用户能够删除多个产品,因此提供了复选框。代码如下:

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循环来解析数据,但它仍然无效。

4 个答案:

答案 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 []元素将是一个数组。