我有一个textarea,所需的值是用换行符分隔的多个字符串。成功后,只捕获最后一个stringf。这是我的代码:
var stringf;
var lines = $('#bulk_string').val().split('\n');
for(var i = 0;i < lines.length;i++){
if(lines[i].length > 0){
stringf = lines[i];
$.ajax({
type: "POST",
url: "ajaxuser.php",
data: 'do=submit&info='+stringf,
success: function(data)
{
$('#string_list').append('<li>'+stringf+' '+data</li>');
}
});
}
}
答案 0 :(得分:2)
您的for
循环将立即完成循环,但您的AJAX调用将需要一段时间来处理并返回给您。因此,当您的AJAX调用完成时,stringf
值将被设置为在循环的最后一次迭代中分配给它的任何值。
要解决此问题,您只需在 stringf
循环中声明for
:
for(var i = 0;i < lines.length;i++) {
var stringf;
...
}