2016-05-12 6 views
0

フォームに配列名を使用しました。以下に示すコントローラ機能にルーティングされます。私は、コントローラに取得しようとしています配列名を取得する

<form method="POST" action="{{url('quiz/check')}}" 
{!! csrf_field() !!} 

@foreach ($quiz as $q) 

@if($q->level=='1') 
{{ $q->qid }}. 
{{ $q->question }}<br> 
<input type='radio' name='mycheck[{{$q->qid}}]' value='1'>  
{{ $q->opt1 }}<br> 
<input type='radio' name='mycheck[{{$q->qid}}]' value='2'>  
{{ $q->opt2 }}<br> 
<input type='radio' name='mycheck[{{$q->qid}}]' value='3'>  
{{ $q->opt3 }}<br> 
<input type='radio' name='mycheck[{{$q->qid}}]' value='4'> 
{{ $q->opt4 }}<br><br> 
@endif 
@endforeach   
    <button type="submit" class="btn btn-default">Get result</button> 
          </form> 

public function check(Request $request) 
    { 
    $count=0; 
    $input=$request->all(); 
    $mycheck=$input['mycheck']; 
    $ch = DB::select('select * from quiz where category="gk" '); 
    return View('quiz.check',['quiz'=>$ch,'input'=>$input,'count'=>$count]);  
} 

ビューファイルになりましたcheck.blade.php

Results: 
@foreach ($quiz as $q) 

    @if(array_key_exists($q->qid, $mycheck) && $mycheck[$q->qid]==$q->answer) 
     {{$count=$count+1}} 

@endif 

@endforeach   

You scored {{$count}}. 

、私はこのエラーを取得しています:

undefined variable: mycheck in view file

+0

これは「配列名」ではありません。 "配列名"は 'foo []'または 'foo [bar]'です。あなたが持っているものは、その中にアンダースコアを持つ普通の古い名前です。 – deceze

+0

コントローラで '$ mycheck' varを使っているのは何ですか?実際に 'mycheck_1'のように見えるときにインデックス 'mycheck'を取得しようとしているので、このエラーが発生しています。 –

+0

また、ビューファイル内の@ifの中には、すでにphpであるため、二重中括弧を使用することはできません。実際にあなたが何を求めているのかは分かりません。 –

答えて

0

あなたは通過していない$mycheck表示する変数。

この行に置き換えます。これにより

return View('quiz.check',['quiz'=>$ch,'input'=>$input,'count'=>$count]);  

return View('quiz.check',['quiz'=>$ch,'input'=>$input,'count'=>$count,'mycheck'=>$mycheck]); 

をまた、あなたが見るために渡されたあなたのデータによると、実際に変数$quizある$q変数にアクセスしようとしているように見えます。

+0

私は@foreach($ qを$ qとして使用しています。 – Steve

+0

そして '結果:1 2 3あなたは3点を得ました.'私は1 2 3を表示しません。私は' $ count = $ count + 1'を使用しましたが失敗しました。 – Steve

関連する問題