実現したいこと(具体的な例)
現状
→「Name」のセレクトボックスの値がクリアされる
※「Team」で選択した値に紐づくNameをajaxで作成し設定
該当のソースコード
現在のexportメソッドでバリデーションチェックを行う処理
php
1class ExportController extends Controller{ 2 3public function export(Request $request) 4 { 5 $validator = $this->validation($request); 6 if ($validator->fails()) { 7 return redirect('/dashboard/export') 8 ->withErrors($validator) 9 ->withInput(); 10 } 11 12//以下でエクスポート本処理(省略) 13 } 14}
javascript
1$.ajax({ 2 url: "/dashboard/exportajax", 3 type: "POST", 4 data: { 5 team_id: selectedTeamId, 6 }, 7 dataType: "json", 8 }) 9 .done(function (data) { 10 $("#namePullDownList option").remove(); 11 12 // 初期表示時(select...)の場合 13 if (data == 0) { 14 $("#namePullDownList").prop("disabled", true); 15 $("#namePullDownList").append( 16 $("<option>").text("").attr("value", 0) 17 ); 18 } else { 19 $("#namePullDownList").prop("disabled", false); 20 $("#namePullDownList").append( 21 $("<option>").text("all").attr("value", 0) 22 ); 23 $.each(data, function (key, value) { 24 $("#namePullDownList").append( 25 $("<option>") 26 .val(value.user_id) 27 .text(value.first_name + value.last_name) 28 ); 29 }); 30 } 31 }) 32 .fail(function () { 33 console.log("NG"); 34 });
補足情報
View側では以下のように再描画時のデータを設定しています
※開始日のバリデーション部分のみ抜粋
php
1<div class="col-sm-6 ps-0"> 2 <label for="date" class="p-0 form-label">{{ __('StartDate') }}</label> 3 <input id="startDate" type="date" class="form-control" name="start_date" value="{{ old('start_date') }}"> 4 {{-- バリデーションメッセージ --}} 5 @foreach ($errors->get('start_date') as $error) 6 <span class="p-0 text-danger">{{ $error }}</span> 7 @endforeach 8</div> 9
その他(バージョン)
■OS Mac ■バージョン PHP:8.0.26 Laravel:9.45.1
投稿者コメント
足りない情報などあれば追記します。
お力を貸していただけますと幸いです、よろしくおねがいします。
あなたの回答
tips
プレビュー