3つのタブメニューがあり、そのうちの1つにはデータを処理するためのフォームが含まれています。フォームの処理後にコントローラーがその特定のページにデータを返すことができるようにするJavaScript操作をいくつか行いました。ここでの問題は、データがPOSTメソッド(つまり処理されたデータ)のデータではなく、GET(つまりデフォルトデータ)のデータであるということです。
これは私のコントローラーです
public function index(Request $request){
$method = $request->isMethod('post');
if($method){
$members = $projects = "some data";
return redirect()->route('progress_reports')->with(['projects' => $projects, 'members' => $members])->withInput(['tab'=>'progress_report']);;
}else{
$projects = $members = "default data";
$results = Project::all();
return view('reports.index', compact('projects', 'members', 'results'));
}
}
私の見解
<ul class="nav nav-tabs" id="tabMenu">
<li class="active"><a href="#tab1info" data-toggle="tab">Activity Log</a></li>
<li><a href="#progress_report" data-toggle="tab">Progress Report</a></li>
<li><a href="#tab3info" data-toggle="tab">Find By</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="tab1info">Info 1</div>
<div class="tab-pane fade" id="progress_report">
@include('reports.partials.progress_report')
</div>
<div class="tab-pane fade" id="tab3info">
@include('reports.partials.find_by')
</div>
</div>
JSファイル:
$('#tabMenu a[href="#{{ old('tab') }}"]').tab('show');
できることは、コントローラーからタブの名前を送信し、ビューでjavascriptを使用して、アクティブなクラスをチェックしてタブに追加することです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加