JQuery ajax関数を介して投稿しているフォームがあります。申請の流れは以下の通りです。
- ユーザーがフォームに入力して送信する
- フォームが投稿されると、データは一時配列に保存されます
- フォームが既に送信されている場合、新しい送信で変更されたデータのみを送信したい
比較したいフォームフィールド:
<input name="option[<?php echo $cmd1; ?>]" type="text">
<input name="option[<?php echo $cmd2; ?>]" type="text">
<input name="option[<?php echo $cmd3; ?>]" type="text">
<input name="option[<?php echo $cmd4; ?>]" type="text">
変更された入力の値のみを投稿したい。
以前のフォーム送信を現在のものと比較するコード (以前の送信は配列に保存されますtmpArray
:
var fields = $('.option').serializeArray();
var n = 0;
jQuery.each( fields, function( i, field ) {
if(field.value === tmpArray[n]){
console.log(field.value+" : "+tmpArray[n]+ " TRUE");
} else {
console.log(field.value+" : "+tmpArray[n]+ " FALSE");
}
n++;
});
フォームを送信する ajax 関数:
jQuery.ajax({
type:'POST',
async: true,
cache: false,
url: '/Controller/'+action,
success: function(response) {
jQuery('#resultField').val(response);
},
data: jQuery('form').serialize()
});
('form').serialize()
の値と一致する場合、each() ループの結果から値を削除する方法 (またはより良い方法) はありtmpArray
ますか?
どんな提案でも大歓迎です!