将来自多个SELECT标记的输入存储到PHP数组中

时间:2013-06-04 16:25:56

标签: php html arrays html-select

我有一个迭代3次的输入字段,我想将输入的值存储在PHP数组的每个字段中。

我调用了每个OPTION item[] ,希望它能将每个值保存在同一个数组中。

这会有用吗?如果是,我将如何在PHP上检索它?

这是我的表格:

<tr>
    <td>Items</td>
    <td><select><?php
    $items = $con -> prepare("SELECT * FROM item_descr");
    $items ->execute();
    while($info = $items->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <option name="item[]" value="<?=$info['id_item']?>"><?=$info['name']?></option><?php } ?>
    </td>
    <td>Quantity:</td>
    <td><input name="quantity[]"></td>
        <td><a href="" id="addItem">ADD</a></td>
    </tr>
    <tr class="moreItems">
    <td>Items</td>
    <td><select><?php
    while($info = $items->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <option name="item[]" value="<?=$info['id_item']?>"><?=$info['name']?></option><?php } ?>
    </td>
    <td>Quantity:</td>
    <td><input name="quantity[]"></td>
</tr>
<tr class="moreItems">
    <td>Items</td>
    <td><select><?php
    while($info = $items->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <option name="item[]" value="<?=$info['id_item']?>"><?=$info['name']?></option><?php } ?>
    </td>
    <td>Quantity:</td>
    <td><input name="quantity[]"></td>
</tr>

1 个答案:

答案 0 :(得分:3)

[]从选项标记更改为您的选择标记:

<tr>
    <td>Items</td>
    <td><select name="items[]">
    <?php
        $items = $con -> prepare("SELECT * FROM item_descr");
        $items ->execute();

        while($info = $items->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <option name="item" value="<?=$info['id_item']?>"><?=$info['name']?></option>
    <?php } ?>
    </td>
    <td>Quantity:</td>
    <td><input name="quantity[]"></td>
    <td><a href="" id="addItem">ADD</a></td>
</tr>

然后在您的PHP页面上,检索值:

foreach($_POST['items'] as $key => $itemValue)
{
    echo 'Item: ' . $itemValue . '<br />';
    echo 'Quantity: ' . $_POST['quantity'][$key] . '<br /><br />';
}