2

入力フィールドが 3 回繰り返され、各フィールドに入力された値を PHP 配列に格納したいと考えています。

item[]各値を同じ配列に保存することを期待して、各 OPTION を呼び出しました。

これは機能しますか?はいの場合、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>
4

1 に答える 1

3

[]option タグから select タグに変更します。

<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 />';
}
于 2013-06-04T16:40:40.783 に答える