Laravel 問い合わせフォームでのcheckboxの扱い方について
解決したいこと
複数のcheckboxから値を取得し、確認画面へ表示させる。
値は数値で取得し、表示は文字列としたい。
最終的に数値でDBに保存したいと考えている。
// コントローラー
class ContactController extends Controller
{
public function index(){
return view('contact.fruits1');
}
public function confirm(Request $request)
{
$inputs = $request->all();
// 選択されたcheckboxの値複数を取ってくる
$checkbox = $request->input('checkbox');
// $checkboxが取ってきた値は1,2,3...と数値なので、表示する文字列に変えたい
$fruits = [
1 => 'りんご',
2 => 'みかん',
3 => 'ぶどう',
4 => 'もも',
5 => 'ばなな',
];
// 最終的に表示したい形式
// このままでは全て表示されてしまうので$checkboxで取ってきた値のみ表示したい
$fruits2 = [
'りんご',
'みかん',
'ぶどう',
'もも',
'ばなな',
];
//内容確認ページfruits2に入力情報を渡したい
return view('contact.fruits2', [
'inputs' => $inputs,
'checkbox' => $checkbox,
'fruits2' => $fruits,
]);
}
<!-- view contact.fruits1 -->
<form id="fuga" action="/complete" name="search" method="post">
<dd id="form_select">
<input type="checkbox" name="checkbox[]" value= 1 id="Group1_1" class="checkbox01" /><label for="Group1" class="check_label">りんご</label>
<input type="checkbox" name="checkbox[]" value= 2 id="Group1_1" class="checkbox01" /><label for="Group1" class="check_label">みかん</label>
<input type="checkbox" name="checkbox[]" value= 3 id="Group1_1" class="checkbox01" /><label for="Group1" class="check_label">ぶどう</label>
<input type="checkbox" name="checkbox[]" value= 4 id="Group1_1" class="checkbox01" /><label for="Group1" class="check_label">もも</label>
<input type="checkbox" name="checkbox[]" value= 5 id="Group1_1" class="checkbox01" /><label for="Group1" class="check_label">ばなな</label>
</dd>
...
</form>
<button type="submit" form="fuga" class="sbmit">送信</button>
<!-- view contact.fruits2 -->
<p class="confirm">
@foreach()
{{ }}
@endforeach
<input name="checkbox[]" value="{{ }}" type="hidden">
</p>
<!-- この後完了画面へ -->
自分で試したこと
valueを 'りんご' 等にしてしまえば表示はできるのですが、最終的にDBに数値で保存したいと考えています。
頭の悪い私にヒント等ご教授頂けませんでしょうか…
よろしくお願いいたします
0