#laravel #laravel-form
#laravel #laravel-форма
Вопрос:
У меня есть выпадающий список с днями недели, я хочу выбрать несколько дней, например, «понедельник» и «Вторник», у меня есть несколько вопросов по этому поводу
- 1) Как скрыть выпадающий список множественного выбора? Потому что он показывает весь список
- 2) Как сделать множественный выбор? должен ли я удерживать CTRL для множественного выбора?
- 3) Как он будет сохранен в базе данных, если я собираюсь поместить его в виде строки в тот же столбец, который я имею в виду, будет ли это похоже на ‘MondayTuesday’, или ‘Понедельник вторник’, или ‘Понедельник, вторник’
Вот мое мнение
<div class="form-group">
{{Form::label('weekdays', 'Week Days')}}
{{Form::select('weekdays',$weekdays,null,array('name'=>'weekdays[]', 'multiple' => 'multiple'))}}
{{Form::select('timetable',$time,null,array('name'=>'time[]'))}}
</div>
Контроллер
$categories_name = Category::pluck('category_name','id');
$data = array(
'weekdays' => [
'Monday',
'Tuesday',
'Wednesday'
],
'time' => [
'2p.m',
'3p.m'
],
'categories_name' => $categories_name
);
return view('pages.clubs.create_club')->with($data);
}
Комментарии:
1. Для 1 и 2 точек вы можете использовать плагин jquery для множественного выбора, вам не нужно удерживать CTRL для этого случая, просто выберите и добавьте … теперь для третьей точки вы можете получить массив категорий и сохранить его в БД в виде длинного текста, выполнив это
json_encode($request->get('categories))
, затем во время извлечения категорий сделайте этоjson_decode($key->categories)
Ответ №1:
Для 1 и 2 вы можете использовать плагин под названием chosen, он хорошо документирован и очень прост в реализации.
Для вопроса № 3 вы можете сохранить его в формате json в базе данных следующим образом:
$days = "Monday,Tuesday,Wednesday";
//or $days = $request->weekdays;
$parsed = explode(",", $days);
$selected_weekdays = json_encode($parsed);
Model::create(['weekdays' => $selected_weekdays]);
Затем вы можете отобразить значение на блейде, расшифровав строку json следующим образом:
$selected_weekdays = json_decode($model->weekdays);
{{Form::select('weekdays[]',$weekdays,$selected_weekdays,array('multiple' => 'multiple'))}}
ОБНОВЛЕНИЕ 1:
Желательно установить его с помощью bower:
bower install chosen
Чтобы использовать выбранный:
<link rel='stylesheet' type="text/css" href="{{ asset('bower_components/chosen/chosen.min.css') }}" rel="stylesheet">
{{Form::select('weekdays[]',$weekdays,$selected_weekdays,array('multiple' => 'multiple', 'class' => 'chosen-select'))}}
<script src="{{ asset('bower_components/chosen/chosen.jquery.min.js') }}"></script>
<script>
$(".chosen-select").chosen();
</script>
Комментарии:
1. можете ли вы объяснить мне, как я должен объявить выбранный в форме? я установил его с помощью composer, не могли бы вы показать мне, как показать, как это сделать
2. @NurdauletShamilov — пожалуйста, проверьте обновление моего ответа о том, как использовать выбранный