如何在Laravel中为表单提交两个提交操作?

问题描述:

如果标题不太清楚:如何在Laravel中为表单提交两个提交操作?

我有一个表单和两个提交按钮(或者我可以使用一个提交按钮,另一个可能只是一个按钮或锚标签),并希望每个人提交我的形式,以不同的动作......

任何帮助这么多的赞赏

你可以给第二提交按钮HTML名称,然后检查是否存在该名称在POST语句设置。

<input name="back" type="submit" value="Go Back"> 
<input name="next" type="submit" value="Continue"> 
+0

是的,我想到了,但你看客户想这是我的答案已经解释的其他方式,两种不同的行为,对此有什么影响? 我应该感谢您宝贵的时间 –

+0

您是否反对使用Javascript提交表单并让它监听被点击的锚标签? – smcgovern

+0

我想在不使用javascript的情况下完成它,但如果没有其他方式,那么这将是我最后的选择 –

你可能需要使用jQuery来实现它。当你构建表单时,完全忽略该方法。然后,给你两个按钮和id

<button id="submit-1">Submit 1</button> 
<button id="submit-2">Submit 2</button> 

然后,使用jQuery.postjQuery.ajax提交表单数据。

请参阅以下文章的详细信息:

  1. http://api.jquery.com/jQuery.post/
  2. http://api.jquery.com/jQuery.ajax/
+0

我想在不使用javascript的情况下完成它,但如果没有其他方法,那么这将是我最后的选择当然是 感谢您的时间 –

这可能是最简单的"flash"数据。

在你的路线:

Route::post('/test', '[email protected]'); 
Route::get('/test', '[email protected]'); 
Route::any('/testSubmit1Action', function() 
{ 
    var_dump(Input::old()); 
}); 

然后你的TestController:

class TestController extends BaseController { 

    public function postTest() 
    { 
     // Refer to getTest() below for how these buttons are named. 
     // We can check for the existence of a certain button and process 
     if(Input::has('submit1')) 
     { 
      // Redirect to different route/URI 
      Input::flash(); 
      return Redirect::to('/testSubmit1Action'); 

      // Alternatively, you could process action 1 here 
     } 

     if(Input::has('submit2')) 
     { 
      // Process action 2 
     } 
    } 

    public function getTest() 
    { 
     // I recommend putting this in a view/blade template 
     // eg... return View::make('foo.bar'); 
     echo Form::open(); 
     echo Form::submit('Submit Action 1', array('name' => 'submit1')); 
     echo Form::submit('Submit Action 2', array('name' => 'submit2')); 
     echo Form::close(); 
    } 

}