Cakephp フォームを使用してフォームを作成しています。次のようなフォームを作成しています:
<form name='license' action='/some/action' action='POST'>
<input type="text" id="license0Number" name="data[license][0][number]">
<input type="text" id="license0Year" name="data[license][0][year]">
<input type="text" id="license1Number" name="data[license][1][number]">
<input type="text" id="license1Year" name="data[license][1][year]">
</form>
通常の形式でフォームを送信し、次のようなデータを取得すると、正常に機能します。
$data = array( 'license' => array( '0' => array( 'number'=>'123', 'year'=>'2000' ),
'1' => array( 'number'=>'321', 'year'=>'2003' )
);
しかし、jQuery$.ajax()
関数を使用して同じフォームを送信し、関数でデータを投稿するとserialize()
。サーバー側でこのようなデータを取得しています。
Array
(
[data%5Blicense%5D%5B0%5D%5Bnumber%5D] => 123
[data%5Blicense%5D%5B0%5D%5Byear%5D] => 2000
[data%5Blicense%5D%5B1%5D%5Bnumber%5D] => 321
[data%5Blicense%5D%5B1%5D%5Byear%5D] => 2003
)
jQuery $.ajax() 関数を使用する場合、フォームデータを関連配列の形式で取得するにはどうすればよいですか?
編集:
$('#license_form').live( 'submit', function( event ) {
var action = '/some/action';
var data = $(this).serialize();
$.ajax({
type: "POST",
url: action,
data: data, // form data
success: function( result ) { alert( result ); },
error: function() { alert('error'); }
});
event.preventDefault();
});
ありがとう