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

-1

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

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

Я нахожусь на маршруте /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.log(day_id);
         // console.log(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.log(currentDay);
                  $('#hours').append('<option value="'+ data[i].hour +'">'+ data[i].hour +'</option>');
               }
         })
      });
   });
</script>
@endsection

С помощью этого кода я получаю значение даты, но теперь мне нужно показать время в зависимости от ID события. Вот почему мне нужно передать переменную 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 контроллера. Спасибо!

  • 0
    Вы уже передаете day_id, почему вы не передаете event_id таким же образом?
  • 0
    Я пытаюсь, но у меня действительно нет успеха.
Показать ещё 4 комментария

1 ответ

0

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

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');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню