#laravel #radio-button #laravel-5.8
#laravel #переключатель #laravel-5.8
Вопрос:
В настоящее время я провожу своего рода «тест», чтобы получить начальный класс пользователя на основе заданных им ответов. По сути, личностный тест.
Вот пример моих форм
<div class="form-group">
<h4>{{Form::label('title', 'Favourite season?')}}<br></h4>
<div class="container">
<div class="option">
Spring - {{Form::radio('q4', 1, false)}}<br>
Summer - {{Form::radio('q4', 2, false)}}<br>
Autumn - {{Form::radio('q4', 3, false)}}<br>
Winter - {{Form::radio('q4', 4, false)}}
</div>
</div>
</div>
На данный момент мой контроллер не работает, поскольку я не уверен, как захватить каждое значение, а затем объединить их в конечный результат
public function store(Request $request)
{
$this->validate($request, [
'q1' => 'required',
'q2' => 'required',
'q3' => 'required',
'q4' => 'required',
'q5' => 'required',
'q6' => 'required',
'q7' => 'required',
'q8' => 'required',
'q9' => 'required',
'q10' => 'required',
]);
return $request;
}
}
Мой post правильно получает значения из входных данных, мне просто нужно знать, как я могу получить из них один окончательный результат и сохранить его в базе данных
Я пытался использовать JavaScript, однако я не могу понять, как передать результат в контроллер для сохранения в базе данных.
Комментарии:
1. что вы подразумеваете под получением одного итогового результата?
Ответ №1:
Ну, вы могли бы попробовать присвоить вашим радиовходам имена в виде массива, чтобы затем вы могли извлекать значения одним выстрелом:
{{ Form::radio('q[3]', 1, false) }}
{{ Form::radio('q[3]', 2, false) }}
...
{{ Form::radio('q[4]', 1, false) }}
{{ Form::radio('q[4]', 2, false) }}
...
Затем в вашем контроллере вы можете получить все значения в один массив:
$values = $request->input('q', []);
Тогда вы можете получить сумму этого довольно легко:
$sum = array_sum($values);
Вероятно, вам захочется выполнить некоторую проверку, чтобы убедиться, что вы получаете нужное количество входных данных в определенных диапазонах значений.