Я новичок в программировании, особенно в Laravel. Я много пробовал, и теперь я пытаюсь сделать проект Laravel, но застрял в некоторых проблемах.
Я хочу сделать кнопку отправки, чтобы передать данные в базу данных и узнать значения в переключателе. Мне удалось передать данные в базу данных, но я до сих пор не могу найти решение для поиска случаев. Итак, как я могу узнать случаи нажатия кнопки «Отправить»?
Вот клинок (question.blade.php)
<table class="table" style="width: 40%">
<form action="storequestion" method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<tr>
<th>M</th>
<th>Question 1</th>
<th>L</th>
</tr>
<tr>
<td><input type="radio" name="q1" value="S" data-col="1"></td>
<td>1.Statement</td>
<td><input type="radio" name="q2" value="S" data-col="1"></td>
</tr>
<tr>
<td><input type="radio" name="q1" value="I" data-col="2"></td>
<td>2.Statement</td>
<td><input type="radio" name="q2" value="I" data-col="2"></td>
</tr>
<tr>
<td><input type="radio" name="q1" value="B" data-col="3"></td>
<td>3.Statement</td>
<td><input type="radio" name="q2" value="D" data-col="3"></td>
</tr>
<tr>
<td><input type="radio" name="q1" value="C" data-col="4"></td>
<td>4.Statement</td>
<td><input type="radio" name="q2" value="C" data-col="4"></td>
</tr>
<tr>
<th>M</th>
<th>Question 2</th>
<th>L</th>
</tr>
<tr>
<td><input type="radio" name="q3" value="D" data-col="5"></td>
<td>5.Statement</td>
<td><input type="radio" name="q4" value="D" data-col="5"></td>
</tr>
<tr>
<td><input type="radio" name="q3" value="C" data-col="6"></td>
<td>6.Statement</td>
<td><input type="radio" name="q4" value="C" data-col="6"></td>
</tr>
<tr>
<td><input type="radio" name="q3" value="B" data-col="7"></td>
<td>7.Statement</td>
<td><input type="radio" name="q4" value="I" data-col="7"></td>
</tr>
<tr>
<td><input type="radio" name="q3" value="B" data-col="8"></td>
<td>8.Statement</td>
<td><input type="radio" name="q4" value="S" data-col="8"></td>
</tr>
<tr> <td> <br><br> <input type="submit" name="submit" value="submit"> </td></tr>
</form>
</table>
Вот контроллер (tanswercontroller.php)
public function storequestion(Request $request)
{
$tanswer = new tanswer;
$tanswer->q1 = $request->q1;
$tanswer->q2 = $request->q2;
$tanswer->q3 = $request->q3;
$tanswer->q4 = $request->q4;
$tanswer->save();
return 'data saved';
}
Вот маршрут (web.php)
route::post('/storequestion', 'tanswercontroller@storequestion');
Таким образом, когда кнопка отправки нажата, это показывает, что значение переключателя, отмеченного значением, является строкой, и тогда будет выводиться что-то вроде этого.
//suppose we choose the radio button who has:
//in Question 1
//name="q1" value="S" data-col="1"//name="q2" value="I" data-col="2"
//In Question 2
//name="q3" value="B" data-col="7"//name="q4" value="S" data-col="8"
//The result will show
// S = 2 , I = 1 , B = 1
Пожалуйста, помогите мне решить эту проблему. Если вы думаете, что использовать JavaScript проще, пожалуйста, дайте мне знать. Спасибо
как я понял, вы можете сделать это так.
сначала вы должны создать маршрут
route::get('/result', 'tanswercontroller@result');
затем в tanswercontroller.php
изменить ваш storequestion()
метод и добавить result()
метод
tanswercontroller.php
class tanswercontroller extends Controller
{
/*
* for storing data then redirected to result
* page with id you can make token for this
* if you prefer
*/
public function storequestion(Request $request)
{
// you must validate data like ---
// $this->validate($request, ['q1' => 'required', ...]);
$tanswer = new tanswer;
$tanswer->q1 = $request->q1;
$tanswer->q2 = $request->q2;
$tanswer->q3 = $request->q3;
$tanswer->q4 = $request->q4;
$tanswer->save();
// redirect to result page with id
return redirect()->url('result/'.$tanswer->id); // added this line
}public function result($id)
{
// pulling data of answer for calulation
$tanswer = tanswer::find($id);
// do some calulation here the return data like
$result = //yourCalculation;
/*
* now calculation is stored in result variable then
* passing result in view so show result as you wish
*/
return view('result', ['result' => $result]);
}
}
Надеюсь, это то, что вам нужно:
$value = $request->q1 - $request->q2;
Это сохранит результат в переменной $value
,