はじめに
前回?職業と飲み物のテーブル構造でid
を使用して管理するようにしました。
ですのでフォーム側でデータベースのIDを使って管理できるように修正するという作業が必要になります。
修正前と後、簡単なことですが、IDを使用しない方法と使用する方法でどんなコードになるのか把握するためにも記事にして残しておきたいと思います
👇確認ページは「ID表示」から「名前表示」に修正済み
職業の選択フォーム
.修正前
<select name="occupation" class="form-control" required>
<option value="">選択してください</option>
<option value="会社員">会社員</option>
<option value="学生">学生</option>
<option value="主婦(夫)">主婦(夫)</option>
<option value="その他">その他</option>
</select>
.修正後
<select name="occupation_id" class="form-control" required>
<option value="">選択してください</option>
<option value="1">会社員</option>
<option value="2">学生</option>
<option value="3">主婦(夫)</option>
<option value="4">その他</option>
</select>
- データベースのoccupation_idと対応させる
- valueに職業のIDをセットするように変更(例:会社員は1)
飲み物の選択フォーム
.修正前
<input class="form-check-input drink-checkbox" type="checkbox" name="drink" value="水" id="water">
<label class="form-check-label" for="beer">水</label>
.修正後
<input class="form-check-input" type="radio" name="drink_id" value="3" id="water">
<label class="form-check-label" for="water">水</label>
- valueを飲み物のIDに変更(例:水は3)
👇Laravelですが参考記事。
サーバー側の変更
フォームの修正後、サーバー側ではoccupation_idとdrink_idを正しくデータベースに保存するように変更する必要があります。
今回は下記のように修正を行いました
my $occupation_id = $c->param('occupation_id');
my @drink_id = $c->param('drink_id');
さいごに
もっといいコードの書き方があるのかもしれませんが、一応目標は達成されたので、ここまで。
今回の記事が何か参考になれば幸いです。