プログラミング学習221日目〜Laravel 受発注アプリ作成 10日目〜
発注データを複数どうやってPOSTするかが問題なのですが、調べてみると使えそうな方法がありました。
<form method="POST" action="{{ route('order.store') }}" onSubmit="return checkSubmit()">
@csrf
<table class="table table-striped">
<tr>
<th>商品コード</th>
<th>発注数</th>
</tr>
<tr>
<td> <input type="text" name="100001[prod_code]" value="100001" readonly> </td>
<td><input class="right" type="number" name="100001[qty]"></td>
</tr>
<tr>
<td> <input type="text" name="100002[prod_code]" value="100002" readonly> </td>
<td><input class="right" type="number" name="100002[qty]"></td>
</tr>
<tr>
<td> <input type="text" name="100003[prod_code]" value="100003" readonly> </td>
<td><input class="right" type="number" name="100003[qty]"></td>
</tr>
<tr>
<td> <input type="text" name="100004[prod_code]" value="100004" readonly> </td>
<td><input class="right" type="number" name="100004[qty]"></td>
</tr>
</table>
<button type="submit">送信</button>
nameをname="〇〇[△△△]"としてやることで連想配列でPOSTできるらしい。ddメソッドで見てみるとこんな感じ。
array:5 [▼
"_token" => "PaHUvVCRNRPP1PRD89cr5bVTAdVkBT3gUAXyNjx3"
100001 => array:2 [▼
"prod_code" => "100001"
"qty" => "1"
]
100002 => array:2 [▼
"prod_code" => "100002"
"qty" => "2"
]
100003 => array:2 [▼
"prod_code" => "100003"
"qty" => null
]
100004 => array:2 [▼
"prod_code" => "100004"
"qty" => "4"
]
]
個別の配列で商品コードと数量が取得できています。
問題はnullの扱い。数量が入っているところのみデータベースに登録したいのでnullは無視したいところ。
continueが使えそうなので明日はこれを試してみることにしよう。
この記事が気に入ったらサポートをしてみませんか?