2013-10-11 1 views
1

В случае, если заголовок не является таким ясным:Как сделать два действия отправки для формы в Laravel?

У меня есть форма и две кнопки отправки (или я могу использовать одну кнопку отправки, а другую - просто кнопку или якорный тег) и хочу, чтобы каждый из них представить свою форму к другому действию ...

любая помощь так высоко ценится

ответ

1

Вы могли бы дать вторую кнопку отправить имя HTML, а затем проверить, чтобы увидеть, если это имя задано в операторе POST.

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

Да, я думал об этом, но вы видите, клиент хочет это другой путь, который я объяснил в ответ , два разных действия, что с этим делать? Я должен поблагодарить вас за то, что вы положили дорогой –

+0

Вы не используете Javascript для отправки формы и хотите ли вы прослушивать тег привязки? – smcgovern

+0

Я бы хотел сделать это, не используя javascript, но если бы не было другого пути, то это был бы мой последний выбор курса –

0

Возможно, вам понадобится использовать jQuery для этого. Когда вы создадите форму, полностью оставьте этот метод. Затем, дайте ваши две кнопки и id:

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

Затем используйте jQuery.post или jQuery.ajax представить свои данные формы.

Смотрите эти статьи для получения дополнительной информации:

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

Я бы хотел сделать это, не используя javascript, но если не будет другого способа , то это будет мой последний выбор курса спасибо за время –

0

Это может быть проще "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(); 
    } 

}