Мне жаль. Я исследовал несколько часов, несколько, и я до сих пор не достиг успеха в этом.
Позволь мне объяснить:
Я нахожусь на маршруте /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.info(day_id);
// console.info(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.info(currentDay);
$('#hours').append('<option value = "'+ data[i].hour +'">'+ data[i].hour +'</option>');
}
})
});
});
</script>
@endsection
С помощью этого кода я получаю значение даты, но теперь мне нужно показать время в зависимости от идентификатора события. Вот почему мне нужно передать переменную 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. Спасибо!
🤔 А знаете ли вы, что...
JavaScript поддерживает модульную структуру, что способствует организации кода на больших проектах.
Итак, да, вы получаете идентификатор события здесь:
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');