Jezeli ajaxFileUpload() zwraca jakąś wartość, to możesz spróbować:
while(ajaxFileUpload()!=wartosc_w_przypadku_sukcesu) {}
ale z tego co kojarze, to takie coś się wysypuje.
Ogólnie, to nie ma żadnego sposobu na 'zawieszenie' działania skryptu, ewentualnie możesz używać pętli w taki sposób jak powyżej.
Możesz też zmienić skrypt na coś takiego:
var max_value=false;
var what_i_do_now=0;
function klik(){
if(max_value==false)
//jeżeli zmienna nie zainicjowana, to zapisuje w niej twoją wartość maksymalną
{ max_value=parseInt($("#upload_sum").val());}
//jak pseudo-pętla się kończy, to funkcja zwraca false
if(max_value==what_i_do_now)
{ return false; }
if($("#upload_file_"+what_i_do_now).val() != '')
{ //to wywołanie twojej funkcji
ajaxFileUpload($("#upload_foto_"+x).val(),x);
}
else
{what_i_do_now++; //kolejny element
klik(); //ponowne wykonanie funkcji
}
}
a w ajaxFileUpload po otrzymaniu wyniku i instrukcjach, które wykonujesz, dodaj:
what_i_do_now++; //kolejny element
klik(); //ponowne wykonanie funkcji
I dzięki temu będziesz miała pętle, która przechodzi do następnego kroku jeżeli if($("#upload_file_"+what_i_do_now).val() != '') zwróci false lub, gdy wykona się funkcja ajaxFileUpload:)