title: How to process a multi step form in controller? (When the user clicks "go to step 2" the form is not being processed in the controller)
body: <p>I have a multi step form using bootstrap and jQuery. The multi step form is for a user to buy a product. There are 4 steps: Step 1 is for the user insert his info (name, email, etc), Step 2 the user select the payment method, Step 3 the user introduces the payment data, Step 4 present an invoice for the user. So Im trying to divide the form in 4 steps, each step with a respective method in the controller.</p>
  
  <p>The issue is that when the user clicks in the submit input "Go to step 2"  the the jquery code shows the section of step 2 for the user select the payment methods, But the step 1 is not being processed in the PaymentController, that is, the request is not reaching the PaymentController. </p>
  
  <p>Do you know where is the issue? </p>
  
  <p><strong>The flow that I have for this issue:</strong></p>
  
  <p>I created a PaymentController to handle the payment process.</p>
  
  <p>The user clicks in a product and goes to the product details page. In the product details page the user select the quantities. So there is a select menu inside a form with this action "<code>&lt;form method="post" action="{{route('products.storeProduct', ['id' =&gt; $product-&gt;id, 'slug' =&gt; $product-&gt;slug])}}</code>">".  </p>
  
  <p>The route for this form is:</p>
  
  <pre><code>Route::post('/product/{id}/{slug?}/payment', [
      'uses' =&gt; 'PaymentController@storeProduct',
      'as'   =&gt;'products.storeProduct'
  ]);
  </code></pre>
  
  <p>The storeProduct method stores the product, get some info from db and then redirect the user to the products.payment route to present the payment page page:</p>
  
  <pre><code>class PaymentController extends Controller
  {
      public function storeProduct(Request $request, $id, $slug = null){
          ...
          return redirect(route('products.payment',['id' =&gt; $id, 'slug' =&gt; $slug]));
      }
  
      public function presentPaymentPage(Request $request, $id, $slug=null){
        ...
          return view('products.payment',
              ['product' =&gt; $product, 'id' =&gt; $id, 'slug' =&gt; $slug]);
      }
  }
  </code></pre>
  
  <p>The route for the presentPaymentPage():</p>
  
  <pre><code>Route::get('/product/{id}/{slug?}/payment', [
      'uses' =&gt; 'PaymentController@presentPaymentPage',
      'as'   =&gt;'products.payment'
  ]);
  </code></pre>
  
  <p>Then for the step 2 I created the two methods below in the PaymentController and two routes in web.php:</p>
  
  <p>Two methods added in the PaymentController (for now dont have any content):</p>
  
  <pre><code>public function storeUserInfo(Request $request, $id, $slug = null){
      dd($request-&gt;all()); // dont shows nothing
  }
  public function presentPaymentMethods(Request $request, $id, $slug=null){
  
  }
  </code></pre>
  
  <p>And the routes for the methods:</p>
  
  <pre><code>Route::post('/product/{id}/{slug?}/payment/storeUserInfo', [
      'uses' =&gt; 'PaymentController@storeUserInfo',
      'as'   =&gt;'products.storeUserInfo'
  ]);
  
  Route::get('/product/{id}/{slug?}/payment/paymentMethods', [
      'uses' =&gt; 'PaymentController@presentPaymentMethods',
      'as'   =&gt; 'products.presentPaymentMethods'
  ]);
  </code></pre>
  
  <p>In the payment.blade.php I have form steps like:</p>
  
  <pre><code>&lt;div class="tab-content id="myTabContent"&gt;
      &lt;div class="tab-pane fade show active clearfix" id="step1" role="tabpanel" aria-labelledby="home-tab"&gt;
          &lt;form method="post" action="{{route('products.storeUserInfo', ['id' =&gt; $id, 'slug' =&gt; $slug])}}"&gt;
              &lt;!-- form fields --&gt;
              &lt;input type="submit" href="#step2" data-toggle="tab" role="tab" class="next-step" value="Go to step 2"/&gt;
          &lt;/form&gt;
      &lt;/div&gt;
      &lt;div class="tab-pane fade clearfix" id="step2" role="tabpanel" aria-labelledby="profile-tab"&gt;
          &lt;form method="post" class="clearfix"&gt;
              &lt;!-- form fields --&gt;
              &lt;input type="submit" href="#step3" data-toggle="tab" role="tab" class="next-step" value="Go To step 3"/&gt;
          &lt;/form&gt;
      &lt;/div&gt;
      ...
  &lt;/div&gt;
  </code></pre>