Laravel Передача Select2 выбранных элементов в контроллер и возврат результатов запроса - PullRequest
0 голосов
/ 02 апреля 2020

Моя проблема немного с 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 Но я не могу найти, что я делаю не так. Так что спасибо всем!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...