【发布时间】:2020-01-12 13:46:06
【问题描述】:
我是 laravel 的新手,我正在 laravel 中制作测验应用程序,我遇到了这个问题
@include('inc.header')
<br>
<div class="container">
<div class="row">
<form method="POST" action="{{ url('/store-quiz') }}" class="" id="quiz_module">
{{ csrf_field() }}
@foreach($questions as $question)
@if($id == $question->category_id)
<legend> Quiz Of {{ $question->category->title }}</legend>
<div class="jumbotron">
<input type="hidden" name="user_id" value="{{ auth()->user()->id }}">
<input type="hidden" name="category_id" value="{{ $question->category_id }}">
<input type="hidden" name="question_id" value="{{ $question->id }}">
<h4>
Question {{ $question->id }}
</h4>
<h3>
{{ $question->question }}
</h3><brx`>
<h5>
 <input type="radio" name="user_answer" class="form-check-input" value="{{ $question->option_a }}">{{ $question->option_a }}<br>
 <input type="radio" name="user_answer" class="form-check-input" value="{{ $question->option_b }}">{{ $question->option_b }}<br>
 <input type="radio" name="user_answer" class="form-check-input" value="{{ $question->option_c }}">{{ $question->option_c }}<br>
 <input type="radio" name="user_answer" class="form-check-input" value="{{ $question->option_d }}">{{ $question->option_d }}<br>
</h5>
</div>
@endif
@endforeach
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.5/validator.min.js"></script>
<script type="text/javascript">
$("#quiz_module").click(function(){
var url = $(this).attr("action");
$.ajax({
url: "/store-answer",
type:"POST",
data: $('form').serialize(),
}); //end of ajax
});
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')
}
});
</script>
@include('inc.footer')
你可以在这里看到我的输出https://prnt.sc/p4esh1
这里我从数据库中获取所有记录。当我点击任何单选按钮时,它将在数据库中存储 user_id、category_id、question_id 和答案。
但问题是每次都需要最后一个问题的问题 ID。
我想存储单独的问题 ID,例如如果我选择第二个问题的答案,然后在数据库中保存第二个问题的问题 ID,第三个问题也是如此。 但是这里每次都省3。
我该如何解决这个问题? 请指导我,谢谢!
在我的控制器中,我的代码如下所示
public function storeAnswer(Request $request)
{
$create = Quiz::create($request->all());
return redirect('/home');
}
【问题讨论】:
-
请也分享一下你处理POST请求的方法的内容。
-
这不是 laravel 的问题。这是基本的 html 表单问题。您输出相同的名称三次,只有最后一个会被使用。您需要使用表单数组。 php.net/manual/en/faq.html.php#faq.html.arrays
-
我更新了我的问题,先生
-
您是否尝试过将表单放入 foreach 中,以便为每个问题创建不同的表单。
-
@amindevloper 我认为这应该可以解决问题。可以试试吗?
标签: mysql laravel eloquent laravel-5.5