我正在使用AJAX将数据提交到将更新我的数据库的脚本。
通常这很简单,但在这种情况下,当我点击提交按钮时,我需要遍历一个选择器列表来收集值。我可以这样做,但似乎将数据收集到一些数组然后只发布一次就更有意义了。
$(document).on('click', '#submit', function(){
$('.myForm').each(function() {
var hid = $(this).closest('.myForm').attr('data-hid'),
opn = $(this).find('.tOpen'),
cls = $(this).find('.tClose'),
old_opn = opn.attr('data-open'),
new_opn = opn.val()+':00',
old_cls = cls.attr('data-close'),
new_cls = cls.val()+':00';
$.ajax({
type: 'POST',
url: '/myscript.ajax',
data: {
'hid' : bid,
'old_opn' : old_opn,
'new_opn' : new_opn,
'old_cls' : old_cls,
'new_cls' : new_cls
},
dataType : 'json',
success: function (response) {
// done
}
});
});
});
我觉得我很接近,但仍需要一些帮助来解决这个问题。
答案 0 :(得分:0)
你可以做这样的事情
let allData = [];
$('.myForm').each(function() {
var tempArray = [];
tempArray['hid'] = $(this).closest('.myForm').attr('data-hid');
tempArray['opn'] = opn = $(this).find('.tOpen');
tempArray['cls'] = $(this).find('.tClose');
tempArray['old_opn'] = opn.attr('data-open');
tempArray['new_opn'] = opn.val()+':00';
tempArray['old_cls'] = cls.attr('data-close');
tempArray['new_cls'] = cls.val()+':00';
allData.push(tempArray)
});
然后一次性发送