2016-10-23 11 views
0

はJavaScriptを通じて完全な配列を取得できません: - >ネットワーク - >ヘッダー - >フォームデータはアヤックス

$.ajax({ 
    headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')}, 
    method: 'POST', 
    url: "{{URL::to('/person/mission/punch/import')}}", 
    data: { 
     form_year: selected_year, 
     forms: form.data 
    }, 
    success: function() { 
     alert('success'); 
    }, 
    error: function() { 
     alert('fail'); 
    } 
}); 

私はChormeを見ました。

ここに完全配列があります。

私のPHP:

dd($_POST['forms']); 

は(完全な配列をダンプすることはできません)。私はLaravelを使用します。

+0

「フォーム」の定義は何ですか? –

答えて

1

あなたのインデックス値は、それが有効なデータまたはJSONオブジェクト

data: { 
    form_year: selected_year, 
    forms: $("#formID").serializeObject(); 
}, 

でなければなりません修正されていない私は、jQueryの関数を作成し、それは

JSONオブジェクトに直列化された形式のデータを変換
$.fn.serializeObject = function() 
{ 
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function() { 
     if (o[this.name] !== undefined) { 
      if (!o[this.name].push) { 
       o[this.name] = [o[this.name]]; 
      } 
      o[this.name].push(this.value || ''); 
     } else { 
      o[this.name] = this.value || ''; 
     } 
    }); 
    return o; 
}; 

Javascriptを

$.fn.serializeObject = function() 
{ 
    var o = {}; 
    var a = this.serializeArray(); 
    $.each(a, function() { 
     if (o[this.name] !== undefined) { 
      if (!o[this.name].push) { 
       o[this.name] = [o[this.name]]; 
      } 
      o[this.name].push(this.value || ''); 
     } else { 
      o[this.name] = this.value || ''; 
     } 
    }); 
    return o; 
}; 

$.ajax({ 
    headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')}, 
    method: 'POST', 
    url: "{{URL::to('/person/mission/punch/import')}}", 
    data: { 
     form_year: selected_year, 
     forms: $("form").serializeObject(); 
    }, 
    success: function() { 
     alert('success'); 
    }, 
    error: function() { 
     alert('fail'); 
    } 
});