ただいまlaravel5.4を使用して、検索機能を実装しています。
今回詰まった点は、カテゴリでの検索(モーダル)と文字検索を同時にすることができる(どちらか片方でも検索ができる)機能で、直前のリクエストは取得しもう一度検索に使えるようにしたいというところです。
例えば、カテゴリ検索のみを行った場合、そのカテゴリのデータをold()で持ってきて、その後文字検索を行う際に”直前のカテゴリのデータ”+”文字検索のデータ”で検索を行いたいのですが、なかなかできずに困っています。
試したこと:{{ Form::hidden }}を使用して{{Form::hidden('topic', old('topic'))}}の様に無理やりもって行くやり方はできたのですが、書く量も多くDBに新しいものが増えればまた付け足さなければならないので、却下となりました。
Viewのソースです↓
-View-- //文字検索 {!! Form::open(['route' => 'search', 'method' => 'post']) !!}{!! csrf_field() !!} {!! Form::text('fruit', old('fruit')) !!}{{Form::hidden('food', 'food')}} <div><button type="submit"></button></div> //カテゴリ検索(モーダル) <form id="js-search-dialog" method="post" name="food">{!! csrf_field() !!} <div>Meat</div> {{Form::select('meat',$meats->pluck('name','name'),@$inputs['meat'])}} {{Form::hidden('food', 'food')}} {{Form::hidden('fruit', old('fruit'))}}//試したことで <div>Fish</div> <select name="fish" id="fish"> <option value="">Fish</option> @foreach($fishes as $fish) <option value="{{ $fish->name}}" @if(@$inputs['fish']===$fish->element) selected="selected" @endif>{{ $fish->element }}</option> @endforeach </select> <div>Drink</div> <ul> @foreach($drinks as $k => $drink) <li> <input id="{{ $drink->name}}" name="drikn[{{ $k }}]" value="{{ $drink->name }}" type="checkbox" @if(@$inputs['drink'][$k]===$drink->name) checked @endif> <label for="{{ $drink->name }}">{{ $drink->name }}</label> </li> @endforeach </ul> {{ Form::close() }}
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 02:36
2017/08/09 02:43