无法通过ajax

时间:2018-04-17 14:38:10

标签: javascript jquery ajax count

我有一个表单,用于在点击提交按钮时上传多个文件。

例如我正在上传以下文件

  

student.png

     

animal.png

     

pet.png

我使用以下ajax在后端发送值(code reference taken from)。

$.ajax({
    type:"POST",
    url:this.vpb_settings.vpb_server_url,
    data:dataString,
    cache: false,
    contentType: false,
    processData: false,
    success:function(response)
    {
        console.log(response);
    }
});

当我尝试通过“console.log()”打印响应时,我得到了上传文件的名称列表,这是我的要求之一。 所以在使用“console.log(response)”之后我得到输出为

  

学生

     

动物

     

宠物

现在我想计算得到的名字数量,为此我使用了这个代码,“console.log(response.length)”,但我得到了输出

7
6
3
  

我希望响应为3,因为列表中有3个项目

任何人都可以告诉我们如何做到这一点

2 个答案:

答案 0 :(得分:1)

看起来你每个文件都使用一个ajax调用,所以当然,每个response是一个文件(一个字符串)的名称,而不是一个数组,因此

  1. 'student'.length => 7
  2. 'animal'.length => 6
  3. 'pet'.length => 3
  4. 如果您需要大量文件,可以使用全局计数器,如下所示:

    var counter = 0; //<--needs to be declared somewhere it gets initialized once only
    function someFuncContainingTheAjaxCall(){
    $.ajax({
        type:"POST",
        url:this.vpb_settings.vpb_server_url,
        data:dataString,
        cache: false,
        contentType: false,
        processData: false,
        success:function(response)
        {
            console.log('Files so far ' + (++counter));
        }
    });
    }
    

    HIH

答案 1 :(得分:0)

您可以在外部作用域中创建任何变量,并在成功回调时增加它。此外,您需要在呼叫前将其重置为0.