Есть несколько способов сделать это так, как вы этого хотите.
Вы можете перезагрузить всю форму, что будет означать перезагрузку категорий каждый раз вместе с get_record_as_per_category()
в той же функции. Это даст вам это с одной точки зрения, и это простейшая концепция.
Вы также можете загрузить каждую запись (все категории) и отправить ее на страницу с самого начала вместе со всеми категориями, такими как вы, уже есть в приведенном выше примере кода. Затем, когда пользователь меняет категорию, вы можете использовать JavaScript / jQuery, чтобы скрыть все неправильные записи и показать только правильные записи для выбранной категории.
Я думаю, что самым близким подходом к тому, что вы хотите, было бы иметь еще один файл 'include' (как вы сделали со своим верхним и нижним колонтитулами). Таким образом, верхняя часть останется такой же, как у вас сейчас - той же формы. Затем, между вашей формой категории и нижним колонтитулом, включите эту новую часть ... назовем ее selected_records. Когда пользователь меняет категории, вам нужно только перезагрузить часть selected_records формы с помощью ajax-вызова.
Это было бы так:
@include('header_file')
<form method="post" action="{{ URL::to('/get_form_record') }}">
// Your code as above
</form>
<div id=chosen_guts>
@include('chosen_records')
</div>
@include('footer_file')
<script>
//pseudo code
ajax{
call to get_form_record();
success(successHtml):
$("#chosen_guts").html(successHtml);
}
</script>
Затем, поскольку вы создали представление JUST для выбранных записей, вы можете легко получить только это представление с правильными записями, чтобы вернуться к вызову ajax:
public function get_form_record(Request $request)
{
$a = $request->input('category_id');
$b = get_record_as_per_category($a);
// for the ajax call, we just return the guts, not the form
return view('chosen_records', $b);
}
Для самого первого просмотра при первом отображении страницы вам нужно решить, хотите ли вы включить набор записей для категории «по умолчанию» для отображения в разделе selected_records. Если это так, в исходную функцию select_by_category()
вам нужно включить вызов для получения этих записей:
$b = get_record_as_per_category($someDefaultCategory);
Много вариантов, в зависимости от того, что вам удобно.
НТН