2010-03-23 2 views
0

У меня есть один файл php, который обрабатывает добавление записи в массив базы данных.jquery repeat process после получения ответа от php-файла

, например, в массиве У меня есть 5 пунктов

 aray an='abc','xyz','ert','wer','oiu' 

я хочу, чтобы вызвать один файл PHP в J запроса метода АЯКС

um = an.split(','); 
    var counter = 0; 
    if(counter < uemail.length) { 
    $("#sending_count").html("Processing Record "+ ecounter +" of " + an.length); 
    var data = {uid: um[counter] 
    $.ajax({ 
    type: "POST", 
    url: "save.php", 
    data: data, 
    success: function(html){ 
    echo "added"; 
    counter++; 
    } 

что это сделать, это заполнить все prcess но сохранить. php все еще работает , что я хочу, после того, как один процесс остановится до завершения процесса save.php, он ждет следующие 10 секунд и начнет добавлять 2-й элемент.

Благодаря

+1

Я знаю, что это не ответ, но здесь есть '}': var data = {uid: um [counter] 'и'}) 'в конце вашего кода. –

ответ

1

Не уверен, что, если я правильно понял ваш вопрос правильно, но вы можете использовать синхронную (блокирование) Ajax вызовов вместо асинхронных (без блокировки). Когда вы выполняете асинхронный вызов, выполнение кода продолжается немедленно, в результате чего ajax вызывает «в фоновом режиме». Синхронный вызов блокирует выполнение кода до завершения запроса.

$.ajax({ async: false, ... }); 
0

Это не мое место, чтобы спросить, почему вы хотели бы это сделать, хотя хочу, чтобы вы пытаетесь может привести к медленной и зависания UI.

Вы хотите while петли, не if петли:

while(counter < uemail.length) { 

Другого решения, которое представляет собой,

Вы хотите отключить async флаг, чтобы обеспечить вызов завершен , перед выполнением следующей строки. Функция delay() также поможет.

$.ajax({ 
    async: false, //ensure our requests are synchronous. 
    type: "POST", 
    url: "save.php", 
    data: data, 
    success: function(html){ 
     echo "added"; //?? not a valid javascript function 
     delay(10000); //10000ms = 10 seconds. 
    } 
    counter++;  

}

Кроме того, echo не является допустимым JQuery/функция JavaScript, и ваши брекеты несколько неясными, и, вероятно, misssing.

Я предположил, что counter++ находится вне вашей петли, потому что, если бы это было не так, и у вас был провал, он мог бы продолжаться вечно.

Смежные вопросы