如何在Laravel中为表单提交两个提交操作?
问题描述:
如果标题不太清楚:如何在Laravel中为表单提交两个提交操作?
我有一个表单和两个提交按钮(或者我可以使用一个提交按钮,另一个可能只是一个按钮或锚标签),并希望每个人提交我的形式,以不同的动作......
任何帮助这么多的赞赏
答
你可以给第二提交按钮HTML名称,然后检查是否存在该名称在POST语句设置。
<input name="back" type="submit" value="Go Back">
<input name="next" type="submit" value="Continue">
答
你可能需要使用jQuery来实现它。当你构建表单时,完全忽略该方法。然后,给你两个按钮和id
:
<button id="submit-1">Submit 1</button>
<button id="submit-2">Submit 2</button>
然后,使用jQuery.post
或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();
}
}
是的,我想到了,但你看客户想这是我的答案已经解释的其他方式,两种不同的行为,对此有什么影响? 我应该感谢您宝贵的时间 –
您是否反对使用Javascript提交表单并让它监听被点击的锚标签? – smcgovern
我想在不使用javascript的情况下完成它,但如果没有其他方式,那么这将是我最后的选择 –