0

我正在尝试从页面中的许多列表向服务器发送数据,每个列表都会触发 ajax 数据以供 PHP 进一步处理。我的代码使用 (class=dd) 选择每个列表并一一发送 ajax 数据。当我在 ajax 成功后使用警报(响应)时,这非常有效,删除此警报消息只会向服务器发送较少数量的列表(4 个列表中仅发送 2 个)。有什么想法吗?

 $('#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');
            }
        });
    }
4

1 回答 1

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)); 
    }

});
于 2015-12-08T06:51:13.690 回答