Моя проблема немного с ajax Я думаю. У меня есть раскрывающееся поле поиска select2 multi-select. Когда я выбираю элемент из выпадающего меню, я могу console.log идентифицировать выбранные элементы. И я могу передать данные контроллеру. Но я не могу вернуть результаты запроса от контроллера для просмотра. Итак, вот мой код:
Это search.blade. php
<div class="container">
<div class="row">
<div class="col-md-12">
{!! Form::open(['url' => '/', 'method' => 'post']) !!}
<div class="form-group">
{!! Form::label('İlaçları Seçin') !!}
{!! Form::select('drugs[]', $drugs, null, ['multiple' => 'multiple', 'class' => 'form-control drugs', 'type' => 'hidden']) !!}
</div>
<table>
<tbody>
<div class="row" id="interactions">
<ol>
@foreach ($interactions as $interaction)
<li>
<div>{{$interaction->name}}</div>
</li>
@endforeach
</ol>
</div>
</tbody>
</table>
</div>
</div>
</div>
@endsection
@section('javascripts')
<script type="text/javascript">
jQuery(function() {
jQuery(".drugs").on("change", function () {
var id = $(this).val();
console.log(id);
$.ajax({
method: 'get',
url: "{{ route('search.getData') }}",
data: ({ id: id }),
success: console.log()
});
$.get(" {!! route('search.getData') !!}",{id:id},function(res){
console.log('Response',res);
});
});
});
</script>
@endsection
Я вижу первый Conseole.log (id), и второй console.log («данные переданы в контроллер!»), но я не могу вернуть результаты моего запроса для просмотра. Здесь я прошу вашей любезной помощи.
Это мои маршруты
Route::get('/search', 'SearchController@index');
Route::get('/search/getData', 'SearchController@getData')->name('search.getData');
А это контроллер
class SearchController extends Controller
{
public function index()
{
$drugs = Drug::pluck('name', 'id');
return view('search', ['drugs'=>$drugs], compact('interactions'));
}
public function getData(Request $request)
{
$interactions = Interaction::whereHas('drugs', function ($query) use ($request) {
$query->where('id','=',"{$request}");
})->get();
echo $interactions;
return response($interactions);
}
}
** И это также файл поиска. js, содержащий параметры раскрывающегося списка select2.
$(document).ready(function() {
$('.drugs').select2({
placeholder: "Etkileşimi olan 2 İlacı Seçiniz.",
orderBy: name,
});
});
Итак, основная проблема заключается в передаче результатов из controller в seach.blade. php Но я не могу найти, что я делаю не так. Так что спасибо всем!