我正在尝试从页面中的许多列表向服务器发送数据,每个列表都会触发PHP的ajax数据以进一步处理。我的代码使用(class = dd)选择每个列表并逐个发送ajax数据。当我在ajax成功之后使用alert(响应)时,这非常有效,删除此警报消息只会向服务器发送较少数量的列表(只有2个列表从4中发送)。有什么想法吗?
$('#submit_sorting').on('click', function() {
var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
if (testEmail.test($('#user_email').val()) || $('#user_email').val()==""){
$('[class=dd]').each(function(){
var data = $(this).nestable('serialize');
var dataJson = JSON.stringify(data);
console.log('sent '+JSON.stringify(data));
var response = ajaxx(data);
alert(response);
});
}
else
{
alert('enter valid email address');
}
});
这是ajax代码
function ajaxx(data){
return $.ajax({
type: "POST",
url: 'cardsorting/update',
data: {
'new_order': data,
'user_comments':$('#user_comments').val(),
'user_email':$('#user_email').val(),
'_token':$('meta[name="_token"]').attr('content')
},
success: function(data){
if(data=='dataissaved'){
console.log('came here '+$(location).attr('href'));
}
else
{
console.log('received '+JSON.stringify(data));
}
},
error: function (data) {
alert('Could not connect to controller');
}
});
}
答案 0 :(得分:0)
这里它最终是如何工作的,而不是为每个选择发送多个ajax请求,我将它们收集在一个数组中,然后将它ajax到后端php。
$('#submit_sorting').on('click', function() {
var sorting_array = new Array();
var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
var flag = false;
if (testEmail.test($('#user_email').val()) || $('#user_email').val()==""){
$('[class=dd]').each(function(){
var data = $(this).nestable('serialize');
sorting_array.push(data);
console.log('sent '+JSON.stringify(data));
});
flag = true;
}
else
{
alert('enter valid email address');
}
if(flag){
ajaxx(sorting_array);
console.log(JSON.stringify(sorting_array));
}
});