如何将变量从JS发送到我的Laravel控制器

时间:2019-01-27 18:32:51

标签: javascript php ajax laravel

对不起。我已经研究了几个小时,但仍然无法成功。

让我解释一下:

我在/events/1路线上,所以我已经在该活动的详细信息之内了。

当我选择一个日期(这就是为什么它是变量“ day_id”)时,它将进行查询。但是每个事件都有不同的日子,所以我也需要传递事件ID来进行查询。

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

我不知道自己能否很好地解释自己,我还需要做的是ID是动态的,例如day_id

我已经在许多方面尝试了5天以上。

我正在尝试通过JavaScript获取“事件”的ID,我想将其作为变量发送给控制器,但目前还不能。有人可以帮我吗?

@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控制器。谢谢!

1 个答案:

答案 0 :(得分:1)

是的,您在这里获取事件ID:

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

但是您没有对该变量做任何事情。如果您从不使用分配的变量,则表明您的代码有问题。一些编程语言甚至会因此而拒绝编译。

将事件ID传递到GET请求的查询字符串中,就像处理日期ID一样:

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

然后以相同的方式从输入外观中检索它:

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