Мне жаль. Я исследовал несколько часов, несколько, и до сих пор не достигаю успеха с этим.
Позволь мне объяснить:
Я нахожусь на маршруте /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 контроллера. Спасибо!
Итак, да, вы получаете 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');