0

I've created a multi-step form with different views i.e step1.blade.php, step2.blade.php,step3.blade.phpand I'm trying to save filled up data from form in session and submit it in the final step. The current code snippet is from the step1 form:

    public function postBook(Request $request)
 {
     // dd($request->all());
    $this->validate($request, [
        'title.*' => 'required',
        'f_name.*'   =>'required',
        'l_name.*'   =>'required',
        'dob_month.*'   =>'required',
        'dob_date.*'   =>'required',
        'dob_year.*'   =>'required',
        'gender.*'   =>'required',
        'email.*'   =>'required',
        'contact.*'   =>'required',
        'address1.*'   =>'required',
        'address2.*'   =>'required',
        'town.*'   =>'required',
        'state.*'   =>'required',
        'mailbox.*'   =>'required',
    ]);  

    for ($i=1; $i <=limit ; $i++) { 
              Session::set('title'$i, $request->title[$i]);
              Session::set('f_name'$i, $request->f_name[$i]);
              Session::set('l_name'$i, $request->l_name[$i]);
              Session::set('dob_month'$i, $request->dob_month[$i]);
              Session::set('dob_date'$i, $request->dob_date[$i]);
              Session::set('dob_year'$i, $request->dob_year[$i]);
              Session::set('gender'$i, $request->gender[$i]);
              Session::set('email'$i, $request->email[$i]);
              Session::set('contact'$i, $request->contact[$i]);
              Session::set('address1'$i, $request->address1[$i]);
              Session::set('address2'$i, $request->address2[$i]);
              Session::set('town'$i, $request->town[$i]);
              Session::set('state'$i, $request->state[$i]);
              Session::set('mailbox'$i, $request->mailbox[$i]);
           }    
           dd($request->session()->all()); 
           return view('step2.blade.php');
}

The above code is returning error Parse error: syntax error, unexpected '$i' (T_VARIABLE), expecting ',' or ')'. If I write the line:

Session::set('title'$i, $request->title[$i]);

as

Session::set('title$i', $request->title[$i]);

It won't go with the loop. Is it possible to save data in session with loop ? How can I save these data in session with loop ?

psudo
  • 1,341
  • 3
  • 24
  • 69
  • Concatenate the $i var `Session::set('title'.$i, $request->title[$i]);` and so on. – Mihai Jul 01 '17 at 14:38
  • For more detailed information of how strings in PHP work, checkout the manual about strings: http://php.net/manual/en/language.types.string.php - Take especially notice on the double-quoted strings as they allow variable interpolation. – hakre Jul 01 '17 at 14:42
  • @Mihai Tried both ways `Session::set('title'.$i, $request->title[$i]);` and `$request->session()->put("title$i", $request->title[$i]);`. The code is returning error `Undefined offset: 1` – psudo Jul 01 '17 at 15:07
  • THis means you are looping for more than limit length – Mihai Jul 01 '17 at 15:20

0 Answers0