前提・実現したいこと
チームの議事録を保存するためのアプリケーションを開発しております。
laravelでjqueryのmultiselectというプラグインを使用して、
参加者を複数を選択しPOST送信してDBに保存するまでは完成しました。
それをSHOWで表示する画面も問題なく作成できましたが編集画面を作るところで苦戦してしまいました。
以前の質問でvalueにどのように記述すれば画面に反映されるかを検証しそれがわかったので、
現在そこの改善を行っています。
バリデーションに失敗時に、oldで選択された状態で表示したいのと
編集画面に入ると既に投稿されたデータから、既に選択された状態でビューに表示したいです
どのように記述すればそれが達成できるかで悩んでおります^^;
該当のソースコード
controllerから$teamと$userを渡しています。
View
1<div class="col-sm-12"> 2 <div class="form-group"> 3 <label> 参加者</label> 4 <select id="optgroup" class="ms" multiple="multiple" name="member[]" required> 5 @foreach($team as $teams) 6 <optgroup label="{{ $teams->name }}"> 7 @foreach($user as $users) 8 @unless($teams->id === $users->team_id) 9 @continue 10 @endunless 11 <option value="{{ $users->number }}" {{ is_array(old("member")) && in_array({{ $users->number }}", old("member"), true)? 'selected="selected"' : '' }}> 12 {{ $users->first_name }} {{ $users->last_name }}</option> 13 @endforeach 14 @endforeach 15 </optgroup> 16 </select> 17 </div> 18</div>
テーブルデータ
teams
1 name 21 チームA 32 チームB 43 チームC
users
1 number first_name last_name team_id 21 1 山田 太朗 1 32 2 上田 次郎 2 43 3 田中 三郎 2
試したこと
<option value="1" selected>山田太朗</option> とすることでビューに初期状態で表示する事には成功しています。上記のコードのエラー
syntax error, unexpected '{' (View:
頂いた回答を元に編集したらいけました。
<div class="col-sm-12"> <div class="form-group"> <label> 参加者</label> <select id="optgroup" class="ms" multiple="multiple" name="member[]" required> @foreach($team as $teams) <optgroup label="{{ $teams->name }}"> @foreach($user as $users) @unless($teams->id === $users->team_id) @continue @endunless <option value="{{ $users->number }}" @if (is_array(old("member")) && in_array("$users->number" , old("member") , true)) selected @endif> {{ $users->first_name }} {{ $users->last_name }}</option> @endforeach @endforeach </optgroup> </select> </div> </div>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/08 05:56
2019/06/08 05:59
2019/06/08 06:56
2019/06/08 07:53
2019/06/08 09:01
2019/06/08 09:19