【问题标题】:How to save using 2 buttons in laravel?如何在laravel中使用2个按钮保存?
【发布时间】:2019-05-19 20:53:55
【问题描述】:

我有一个带有 2 个按钮的表单,一个是添加更多问题,另一个是完成。两者都应该保存信息,但是我希望他们根据他们按下的按钮将用户重定向到不同的页面。 我试过 switch 方法,我得到一个空白页,数据没有保存。

这是我的控制器

        public function store(StoreExamQuestionsRequest $request)
    {
        if (! Gate::allows('exam_question_create')) {
            return abort(401);
        }

    switch($request->submitbutton) {

      case 'save':
      $request = $this->saveFiles($request);
      $question = new ExamQuestion;
      $question->question = $request->question;

      $question->exam_id = session()->get('id');
      $question->score = $request->score;
      $question->question_image = $request->question_image;
      $question->save();

          for ($q = 1; $q <= 4; $q++) {
          $option = $request->input('text_' . $q, '');
          if ($option != '') {

              ExamOption::create([
                  'exam_question_id' => $question->id,
                  'text' => $option,
                  'is_correct' =>$request->input('is_correct_' .$q)

    ]);
  }
}
return redirect()->route('admin.exam_questions.create');
        break;

        case 'save-done':
        $request = $this->saveFiles($request);
        $question = new ExamQuestion;
        $question->question = $request->question;

        $question->exam_id = session()->get('id');
        $question->score = $request->score;
        $question->question_image = $request->question_image;
        $question->save();


        for ($q = 1; $q <= 4; $q++) {

        $option = $request->input('text_' . $q, '');
        if ($option != '') {

            ExamOption::create([
                'exam_question_id' => $question->id,
                'text' => $option,
                'is_correct' =>$request->input('is_correct_' .$q)



            ]);
          }
        }

return redirect()->route('admin.exam_questions.index');
          break;
}
}



  {!! Form::submit( 'Save', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save'])!!}

  {!! Form::submit( 'Save Done', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save-done']) !!}

非常感谢

【问题讨论】:

  • 在两者上调用点击事件,设置一个隐藏值,然后发布表单..在服务器端,基于该值重定向
  • 谢谢,但我不知道该怎么做

标签: php laravel


【解决方案1】:

我想通了。这是我的解决方案

public function store(StoreExamQuestionsRequest $request)
    {
        if (! Gate::allows('exam_question_create')) {
            return abort(401);
        }

   if(Input::get('save')) {

     $request = $this->saveFiles($request);
     $question = new ExamQuestion;
     $question->question = $request->question;
     $question->exam_id = session()->get('id');
     $question->score = $request->score;
     $question->question_image = $request->question_image;
     $question->save();

         for ($q = 1; $q <= 4; $q++) {
         $option = $request->input('text_' . $q, '');
         if ($option != '') {

             ExamOption::create([
                 'exam_question_id' => $question->id,
                 'text' => $option,
                 'is_correct' =>$request->input('is_correct_' .$q)

   ]);
 }
}

return redirect()->route('admin.exam_questions.create');

   }else if(Input::get('done')){
     $request = $this->saveFiles($request);
     $question = new ExamQuestion;
     $question->question = $request->question;

     $question->exam_id = session()->get('id');
     $question->score = $request->score;
     $question->question_image = $request->question_image;
     $question->save();


     for ($q = 1; $q <= 4; $q++) {

     $option = $request->input('text_' . $q, '');
     if ($option != '') {

         ExamOption::create([
             'exam_question_id' => $question->id,
             'text' => $option,
             'is_correct' =>$request->input('is_correct_' .$q)



         ]);
       }
     }

       return view ('admin.exam_questions.index');
   }
}

这里是按钮

<button type="submit" class="btn btn-primary" name="save" value="save">Save & Go BACK</button>
<button type="submit" class="btn btn-primary" name="done" value ="done">Save Note</button>

【讨论】:

    猜你喜欢
    • 2021-08-14
    • 2019-09-04
    • 2016-08-26
    • 1970-01-01
    • 2017-03-20
    • 2021-05-13
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多