如何通过分页来保存我的答案?

时间:2015-12-29 03:50:16

标签: php laravel session pagination

我写了一个测试系统,输出问题,我决定使用分页。问题是我不知道如何保存所选答案,然后再转到另一个问题并在测试结束时存储结果之前获取数据。

public function courseExam($id)
{
    try {
        $exam = Exam::findOrFail($id);
    } catch(\Exception $e) {
        \Session::flash('my-errors', ['error' => 'Тестирование которое вы ищите не найдено']);
        return \Redirect::route('pages.courses.index');
    }
    $course = Course::whereRaw('enter_id = '.$id.' or finish_id = '.$id)->firstOrFail();
    $questions = $exam->questions()->paginate(1);

    $user = \Auth::getUser();
    $futile = Futile::whereRaw('user_id = '.$user->id.' and exam_id = '.$exam->id)->first();
    if (!count($futile)) {
        $futile = new Futile();
        $futile->try_count = 0;
        $futile->try_max = 3;
        $futile->save();
        $exam->futile()->save($futile);
        $user->futile()->save($futile);
    } elseif ($futile->try_count == $futile->try_max) {
        \Session::flash('my-messages', ['result' => 'Вы превысили допустимое количество попыток']);
        return \Redirect::route('pages.courses.show', $course->slug);
    }
    $futile->try_started = 1;
    $limit = $exam->limit()->first();
    if (count($limit)) {
        $futile->try_end_time = date('Y-m-d G:i:s', time() + $limit->limits_time*60);
        $futile->try_max = $limit->limits_try;
    } else {
        $futile->try_end_time = date('Y-m-d G:i:s', time() + 30*60);
    }
    $futile->save();

    $time = strtotime($futile->try_end_time) - time();

    return view('pages.courses.course-exam', compact('questions', 'course', 'exam', 'time'));
}

视图:

<div class="container">
    <div class="row">
        <h2>Тестирование по курсу {{ $course->course_name }}</h2>
        <div id="timer" value="{{ $time }}"></div>
        <hr/>

        @include('pages.courses.exam-form')
    </div>
</div>

包括:

<div class="container">
<section>
    {!! Form::open(['class' => 'form', 'method' => 'POST', 'route' => 'exam.result.store', 'id' => 'examForm']) !!}
    {!! Form::hidden('user', Auth::user()->id) !!}
    {!! Form::hidden('date', \Carbon\Carbon::now()) !!}
    {!! Form::hidden('exam', $exam->id) !!}
    {!! Form::hidden('course', $course->id) !!}
    <div class="question-line" style="display: inline;clear: both;">
    @foreach($questions as $question)
        @if(count($question->answers()->get()))
              <h2>{{ $question->question }}</h2>
                @foreach($question->answers()->get() as $answer)
                    <div class="checkbox">
                        <label>
                            {!! Form::checkbox('answer-'.$answer->id, $answer->id) !!} {{ $answer->answer }}
                        </label>
                    </div>

            @endforeach
        @endif
            @if($question->free)
                <div class="form-group">
                    {{ $question->question }}
                    {!! Form::text('free-answer-'.$question->answerFree()->first()->id, null, ['class' => 'form-control']) !!}
                </div>
            @endif
    @endforeach
    </div>
    <hr/>
    @include('pages.pagination.default', ['paginator' => $questions])
    <div class="btn-group" role="group" style="float: left; margin-top: 20px;">
        <a class="btn btn-default" href="{{ URL::route('pages.courses.show', $course->slug) }}">Отмена</a>
        {!! Form::submit('Завершить', ['class' => 'btn btn-primary', 'id' => 'end-test']) !!}
    </div>
    {!! Form::close() !!}
</section>
</div>

0 个答案:

没有答案