laravel foreach 输入单选按钮显示不正确
laravel foreach input radiobutton displayed incorrectly
我正在尝试显示问题的选项。我有这样的问题:
@section('content')
<div class="card">
<div class="card-header">Quiz: {{$category->name}}:</div>
<div class="card-body">
<form action="#" method="post" class="form-group">
@csrf
@foreach($questions as $key => $question)
<div class="form-group">
<label for="question">Question {{1+$key}}:</label>
<p class="card-text">{{$question->question_text}}</p>
@foreach($question->option_text as $key => $option)
<input type="radio">{{$option}}
@endforeach
</div>
@endforeach
<div class="form-group">
<input type="submit" class="btn btn-primary">
</div>
</form>
</div>
</div>
@endsection
我可以同时检查所有单选按钮,但如果我为单选按钮命名,我只能检查整个问题的一个选项。我认为 foreach 循环有些奇怪。
信息:table "questions" 有以下行:
id、category_id、question_text、correct_answer、option_text(这是一个被转换为数组的 json 字段)
来自控制器的代码:
public function store(Request $request, Category $category){
if($request->categoryTest == $category->name){
$questions = $category->question()->inRandomOrder()->get();
return view('user.test', compact('questions', 'category'));
}
}
你知道如何解决这个问题吗?谢谢!
这似乎是单选按钮的正常行为,当时只有一个是市场。您是否尝试过使用复选框?
此外,如果要将其发送到后端,则需要设置名称属性。神奇之处在于:不要使用单数名称,而是将其作为数组,以便在您的控制器上获得一个数组。
<input type="checkbox" name="question[]" class="btn btn-primary">
试试这个:
@section('content')
<div class="card">
<div class="card-header">Quiz: {{$category->name}}:</div>
<div class="card-body">
<form action="#" method="post" class="form-group">
@csrf
@foreach($questions as $key => $question)
@php
$q = 1+$key
@endphp
<div class="form-group">
<label for="question">Question {{1+$key}}:</label>
<p class="card-text">{{$question->question_text}}</p>
@foreach($question->option_text as $key => $option)
<input name="radio-{{$q}}" type="radio">{{$option}}
@endforeach
</div>
@endforeach
<div class="form-group">
<input type="submit" class="btn btn-primary">
</div>
</form>
</div>
</div>
@endsection
我正在尝试显示问题的选项。我有这样的问题:
@section('content')
<div class="card">
<div class="card-header">Quiz: {{$category->name}}:</div>
<div class="card-body">
<form action="#" method="post" class="form-group">
@csrf
@foreach($questions as $key => $question)
<div class="form-group">
<label for="question">Question {{1+$key}}:</label>
<p class="card-text">{{$question->question_text}}</p>
@foreach($question->option_text as $key => $option)
<input type="radio">{{$option}}
@endforeach
</div>
@endforeach
<div class="form-group">
<input type="submit" class="btn btn-primary">
</div>
</form>
</div>
</div>
@endsection
我可以同时检查所有单选按钮,但如果我为单选按钮命名,我只能检查整个问题的一个选项。我认为 foreach 循环有些奇怪。
信息:table "questions" 有以下行: id、category_id、question_text、correct_answer、option_text(这是一个被转换为数组的 json 字段)
来自控制器的代码:
public function store(Request $request, Category $category){
if($request->categoryTest == $category->name){
$questions = $category->question()->inRandomOrder()->get();
return view('user.test', compact('questions', 'category'));
}
}
你知道如何解决这个问题吗?谢谢!
这似乎是单选按钮的正常行为,当时只有一个是市场。您是否尝试过使用复选框?
此外,如果要将其发送到后端,则需要设置名称属性。神奇之处在于:不要使用单数名称,而是将其作为数组,以便在您的控制器上获得一个数组。
<input type="checkbox" name="question[]" class="btn btn-primary">
试试这个:
@section('content')
<div class="card">
<div class="card-header">Quiz: {{$category->name}}:</div>
<div class="card-body">
<form action="#" method="post" class="form-group">
@csrf
@foreach($questions as $key => $question)
@php
$q = 1+$key
@endphp
<div class="form-group">
<label for="question">Question {{1+$key}}:</label>
<p class="card-text">{{$question->question_text}}</p>
@foreach($question->option_text as $key => $option)
<input name="radio-{{$q}}" type="radio">{{$option}}
@endforeach
</div>
@endforeach
<div class="form-group">
<input type="submit" class="btn btn-primary">
</div>
</form>
</div>
</div>
@endsection