Как отправить переменную из JS в мой контроллер Laravel

Мне жаль. Я исследовал несколько часов, несколько, и я до сих пор не достиг успеха в этом.

Позволь мне объяснить:

Я нахожусь на маршруте /events/1, так что уже в курсе деталей события.

Когда я выбираю дату (именно поэтому это переменная «day_id»), она делает запрос. Но у каждого события разные дни, поэтому мне нужно также передать идентификатор события, чтобы сделать запрос.

$event_id = "Dynamic Value";
$data = Hour::where('selected_date', $day_id)->where('event_id', $event_id)->get();

Я не знаю, хорошо ли я объясню, что мне нужно сделать, так это чтобы идентификатор был динамическим, как day_id.

Пытаюсь уже больше 5 дней разными способами.

Я пытаюсь получить идентификатор своего «События» через JavaScript и хочу отправить его как переменную в контроллер, но пока не смог. Кто-нибудь может мне помочь, пожалуйста?

@section('scripts')
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
   $(document).ready(function(){
      $(document).on('change', '#day', function(){
         var day_id=$(this).val();
         var event_id = $('#event_id').val();
         // console.info(day_id);
         // console.info(event_id);

         $.get('/hour?day_id=' + day_id, function(data){
            $('#hours').empty();
            $('#hours').append('<option value = "0" disable selected = "true"> Selecciona la hora</option>');

               for (var i = 0; i < data.length; i++) {
                  currentDay = data[i].hour; 
                  console.info(currentDay);
                  $('#hours').append('<option value = "'+ data[i].hour +'">'+ data[i].hour +'</option>');
               }
         })
      });
   });
</script>
@endsection

С помощью этого кода я получаю значение даты, но теперь мне нужно показать время в зависимости от идентификатора события. Вот почему мне нужно передать переменную event_id в метод контроллера. Я использую var event_id = $('#event_id').val();

Это код в контроллере:

   {
      $day_id = Input::get('day_id');
      $event_id = '2'; //I need this to be dynamic
      $data = Hour::where('selected_date', $day_id)->where('event_id', $event_id)->get();

      return response()->json($data);
   }

Web.php

Route::get('/hour', 'Events\EventController@getHours')->name('ajax.hour');

Еще раз извините. Я исследовал несколько часов, несколько, и я до сих пор не достиг успеха в этом.

Мне нужно знать, как передать переменную event_id в контроллер laravel. Спасибо!

🤔 А знаете ли вы, что...
JavaScript поддерживает модульную структуру, что способствует организации кода на больших проектах.


77
1

Ответ:

Решено

Итак, да, вы получаете идентификатор события здесь:

var event_id = $('#event_id').val();

Но вы ничего не делаете с этой переменной. Если вы никогда не используете назначенную вами переменную, это главный признак того, что у вас есть проблема в вашем коде. Некоторые языки программирования даже отказываются компилироваться из-за этого.

Передайте идентификатор события в строке запроса вашего запроса GET, точно так же, как вы делаете это с идентификатором дня:

$.get('/hour?day_id=' + day_id + '&event_id=' + event_id, function(data){

Затем таким же образом извлеките его из входного фасада:

$event_id = Input::get('event_id');