对不起。我已经研究了几个小时,但仍然无法成功。
让我解释一下:
我在/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控制器。谢谢!
答案 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');