首页 > 解决方案 > 如何将变量从 JS 发送到我的 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);
   }

网页.php

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

再一次,我很抱歉。我已经研究了几个小时,几个小时,但我仍然没有成功。

我需要知道如何将event_id变量传递给 laravel 控制器。谢谢!

标签: javascriptphpajaxlaravel

解决方案


所以,是的,您在这里获得了事件 ID:

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

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

在您的 GET 请求的查询字符串中传递事件 ID,就像您使用日期 ID 一样:

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

然后从 Input 门面以相同的方式检索它:

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

推荐阅读