Как перезагрузить страницу при выборе опции Ajax get метод

#php #ajax #laravel #parameters #laravel-7

#php #ajax #laravel #параметры #laravel-7

Вопрос:

У меня есть список соревнований в моей опции выбора,

Мне нужно знать, как заставить эту функциональность работать,

Когда пользователь выбирает соревнование, страница должна перезагрузиться с данными о соревновании,

Это опция выбора в моем блейде

 <div class="row pt-3">
    <div class="col">
         <select name="competition" id="competitionSearch" class="select listing pt-2 pb-2" >
               <option value="">Select Competition</option>
                   @foreach ($allCompetitions as $competition)
                      <option value="{{ $competition->id }}"> {{ $competition->name }}</option>
                   @endforeach
          </select>
    </div>
</div>
 

вот как это выглядит

введите описание изображения здесь

это метод ajax get, который я использовал

  $(document).ready(function(){
  
    $('#competitionSearch').change(function(){
        
        var compid = $(this).val();
            if(compid > 0){
                fetchRecords(compid);
            }
    });
});

function fetchRecords(id){
$.ajax({
    url: 'detailed-registrations/getCompetitionAjax/' id,
    type: 'get',
  
    success: function(response){
        if (response) {
            //load selected competition here
        }
    }
});
}
 

Мои маршруты

 Route::get('competitions/{competition}/detailed-registrations/getCompetitionAjax/{id}','CompetitionController@getCompetitionAjax');
 

Моя функция в контроллере

 public function getCompetitionAjax($competition, $id, Request $request)
{
   $comp = $this->competitionsRepo->findOrFail($id);

    return redirect(route('competitions.detailed-registrations',$id))->with('comp',$comp);
}
 

Мне нужно знать, как я могу заставить эту функциональность работать

изначально пользователь будет находиться на странице конкурса

 http://127.0.0.1:8000/competitions/1/detailed-registrations
 

как только он выбирает соревнование, 2 перенаправляется на страницу соревнований с отфильтрованными параметрами запроса как

 http://127.0.0.1:8000/competitions/2/detailed-registrations?filters=visibleamp;age=allamp;gender=all
 

Комментарии:

1. Вы должны вернуть json для метода getCompetitionAjax и использовать ответ в js

Ответ №1:

Не думаю, что вам нужен вызов ajax для перенаправления пользователя на другую страницу при выборе конкурса, вы можете перенаправить с javascript

 $(document).ready(function(){
  
    $('#competitionSearch').change(function(){
        
        var compid = $(this).val();
            if(compid > 0){
                //Redirect the user to the page which will show the selected details
                location = 'competitions/'   id   '/detailed-registrations?filters=visibleamp;age=allamp;gender=all';
            }
    });
});
 

А затем пусть метод контроллера Laravel обрабатывает запрос на соревнования по маршруту.подробно-регистрации