为了账号安全,请及时绑定邮箱和手机立即绑定

laravel foreach 输入单选按钮显示不正确

laravel foreach 输入单选按钮显示不正确

PHP
繁星淼淼 2023-04-15 17:40:12
我正在尝试显示问题的选项。我有一个问题,当我这样做时:@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 循环有些奇怪..信息:“问题”表包含以下行: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'));  }}你知道如何解决这个问题吗?谢谢你!
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

尝试这个:


@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


查看完整回答
反对 回复 2023-04-15
?
万千封印

TA贡献1891条经验 获得超3个赞

这似乎是单选按钮的正常行为,当时只有一个是市场。您是否尝试过使用复选框?

另外,如果你想将它发送到后端,你需要设置一个名称属性。神奇之处在于:不要使用单数名称,而是将其作为数组放置,以便在您的控制器上获得一个数组。

<input type="checkbox" name="question[]" class="btn btn-primary">


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信