1

我有一个正常工作的递归 Ajax 调用(称为 PhP 脚本做他的工作,递归工作,一切都很好)除了在 ajax 调用之间我尝试更新输入文本值以显示进度并且它只更新一次整个循环完成。

为什么是线

$('#start_'+code_regional).val(msg);

不执行?

function addLeads(code_regional, phone_numbers_start)
    {
        var databases = [];
        var file = document.getElementById('file_'+code_regional).files[0];

        var formData = new FormData();
        formData.append('selectedDatabases', JSON.stringify(databases));
        formData.append('code_regional', code_regional);
        formData.append('phone_numbers_start', phone_numbers_start);
        formData.append('phone_numbers_end', $('#end_'+code_regional).val());
        formData.append('filePath', file);

        $.ajax({
           type: 'POST',
           url: 'execute.php',
           data: formData,
           processData: false,
           contentType: false,
           success: function(msg){
                $('#start_'+code_regional).val(msg);
                if(msg < $('#end_'+code_regional).val())
                {
                    addLeads(code_regional, msg);
                }
                else
                {
                    $('#start_'+code_regional).val($('#end_'+code_regional).val());
                }
           }
        });
    }
4

2 回答 2

1

如果msg是整数,则应比较整数而不是字符串:

if( parseInt(msg,10) < parseInt($('#end_'+code_regional).val(),10) )

如果仍然失败,请尝试console.log(...)在测试之前和之后添加一个以了解发生了什么。

于 2013-08-23T23:57:11.430 回答
1

你在ajax调用之间是什么意思?代码告诉我,“如果 msg 小于 y,请再次调用 addLeads,否则更新起始字段”。所以这不是跟踪进度,开始字段仅在最后更新。如果要始终更新,请将更新行移到条件之外。

于 2013-08-24T00:49:50.717 回答