Gathering form input to display on another page in laravel

After a user submits a form, we need to be able to take that information and pass it to another
page. This recipe shows how we can use Laravel’s built-in methods to handle our POST data.

Getting Ready

We’ll need the simple form set up from the Creating a simple form section.

How To do…

Follow these steps to complete this recipe:
1. Create a route to handle the POST data from the form:
Route::post(‘userform’, function()
{
// Process the data here
return Redirect::to(‘userresults’)-
>withInput(Input::only(‘username’, ‘color’));
});

2. Create a route to redirect to, and to display the data:
Route::get(‘userresults’, function()
{
return ‘Your username is: ‘ . Input::old(‘username’)
. ‘<br>Your favorite color is: ‘
. Input::old(‘color’);
});

How its work…..

In our simple form, we’re POSTing the data back to the same URL, so we need to create a
route that accepts POST using the same path. This is where we would do any processing of
the data, including saving to a database or validating the input.
In this case, we simply want to pass the data to the next page. There are a number of ways to
accomplish this. For example, we could use the Input class’s flashOnly() method:
Route::post(‘userform’, function()
{
Input::flashOnly(‘username’, ‘color’);
return Redirect::to(‘userresults’);
});
However, we’re using a shortcut that Laravel provides, and only passing along two of the three
form fields we asked for.
On the next page, we use Input::old() to display the flashed input.

Leave a Reply

Your email address will not be published. Required fields are marked *