2016-06-09 26 views
0

我想製作一個PHP郵件程序,並且想要使用JS添加進度條。 所以我電子郵件(文本域)(我的問題是與進度)的列表,下面的代碼:JavaScript Loop返回當前索引

<script type="text/javascript"> 
//to get every mail by line in textarea 
var textarea = tt.replace("\r\n", "\n"); 
var textarea = textarea.replace("\r", "\n"); 
var textarea = textarea.split("\n"); 


var indice=0; 
for(var i=0;i<count(textarea);i++){ 
var line = textarea[i]; 
var indice= indice+100/count(textarea); 

$('#waiting').load('sent.php',{ln:line,indc:indice}, function(){ 
var finale = $('#waiting').text(); //return the current value of indice 
$('#progressbar').css({ "width" : finale+"%"}); 
setTimeout('#waiting', 1000); 
}); 
} 
</script> 

例如,如果我有4條線路列表= 100/4 = 25,所以在每個循環它將發送當前索引,第一個索引25%秒(25 + 100/4 = 50%)... 100%。 我的問題:循環直接打印最終索引= 100%,她不會在每個循環中返回當前索引,並且當我添加計時器時它不起作用...我的函數有問題需要幫助,請爲我的進度條,請:)我的進度條,需要得到每個循環各項指標不會很快,由一個只有一個請我需要幫助

回答

0

也就是說怎麼一回事,因爲

var indice=0; 

被decalred在循環外,仍然在循環內定義

var indice= indice+100/count(textarea); 

試試

indice= indice+100/count(textarea); 

這可能會解決問題。 Regards

+0

該循環仍然只返回最終索引,而不是每個循環的每個索引,所以我的進度條,當我點擊它的按鈕,它是100%直接。並不打印每個當前索引,並等待1000ms傳遞給其他索引.... :( – silvorno

+0

請你安裝小提琴,以便我可以看看問題? – Batman

+0

在beginin indice = 0。list contient 4line for第一次:0 + 100/4 = 25,我發送這個值爲「25」到發送的頁面,發送的頁面返回這個值,如果一切正常的話,所以如果一切正常的話,它會返回25和進度條會去25%,第二次指示= 25 = 25 + 100/4 = 50,.....並且仍然到最後100%。問題是我的代碼沒有等待向你展示每一個循環的每一個指標,它直接顯示你最終的指標100%,當我添加一個計時器它dither't工作:(......我需要一個幫助我的進度條 – silvorno