2017-09-07 12 views
0

私は3つのオブジェクト 'emp_info、leave_detail、およびleave_items'をコントローラに持っています。各オブジェクトのレコードを取得する方法はわかりません。私を手伝ってくれますか?コントローラLaravelのajaxオブジェクトからデータを取得するにはどうすればよいですか?

$.ajax({ 
     type: 'POST', 
     url: '/leave-request-initiator/store', 
     data: {_token: $('#_token').val(), emp_info: $('#frm_emp_info').serialize(), leave_detail: $('#frm_leave_detail').serialize(), leave_items: leave_items}, 
     beforeSend: function() { 
      console.log('sending'); 
     }, 
     success: function (response) { 
      console.log(response); 
     } 
    }); 

コントローラ。

public function store(Request $request) 
    { 
     $data = $request->all(); 
     foreach ($data->emp_info as $item){ 
      $empcode = $item['EMPCODE']; 
     } 

     $leaveDetail = new HREmpLeave([ 
      'EMPCODE' => $empcode, 
      'LEAVECODE' => $request->get('LEAVECODE'), 
      'FROMDATE' => $request->get('FROMDATE'), 
      'TODATE' => $request->get('TODATE'), 
      'BACKTOWORKON' => $request->get('BACKTOWORKON'), 
      'NODAY' => $request->get('NODAY'), 
      'REMARK1' => $request->get('REMARK1') 
     ]); 
     $leaveDetail->save(); 
    } 
+0

すべてのエラー・コード/ブラウザネットワークインスペクタ/ htmlのあなたがポストに追加することができますか? – Quezler

+0

コンソールでこのようなエラーが表示されます。申し訳ありません。私は学生です。 POST http:// localhost:8000/leave-request-initiator/store 500(内部サーバーエラー) send @ jquery-3.1.1.min.js:4 ajax @ jquery-3.1.1.min.js :4 (匿名)@ 10009:335 ディスパッチ@ jquery-3.1.1.min.js:3 q.handle @ jquery-3.1.1.min.js:3 –

+1

このコードでは多くのことが間違っています: '$ data-> emp_info'を使ってどのようにアクセスすればよいのでしょうか?2. foreachでは(それが可能であっても)最後の項目だけが$ empcodeに設定されます、それはあなたの意図ですか? –

答えて

0

変更この:これに

$data = $request->all(); 
    foreach ($data->emp_info as $item){ 
     $empcode = $item['EMPCODE']; 
    } 

$emp_info = parse_str($request->emp_info); //parse into a array 
$empcode = $emp_info['EMPCODE']; 
+0

あなたのコードを試しても、エラーは発生しませんが、$ empcodeはnullです。 –

+0

これは '$( '#frm_emp_info')'フォームのフィールドの1つとして 'EMPCODE'があることを確認する必要があることを意味します。 –

関連する問題