Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Ajax в цикле (https://javascript.ru/forum/dom-window/41154-ajax-v-cikle.html)

imediasun1 02.09.2013 14:40

Ajax в цикле
 
Здравствуйте есть php страница
foreach ($site as $file){
echo "<input type='text' value='".$file."'";
}

Она выводит названия файлов находящихся в определенной директории в инпут.
Есть ajax запрос, который выполняет php код и возвращает результат выполнения.
function put_img(obj){

$.ajax({
	         url: "/dir2/index",
	         type: "POST",
	         cache:true,
			 data: {data:obj},
	         success: function(data){
			 
		$(".result").html(data);
			
		}
	       });
}

В файле dir2/index происходит ресайз изображения.
Как этот аякс запрос вызвать в цикле для каждого инпута, так чтобы каждый последующий аякс запрос происходил только по успешному завершению предыдущего? Дело в том что время ожидания сервака ограничено и это правильно и я подумал может от клиента выполнять пхп срипт через аякс запрос для каждого нового файла, помогите пожалуйста

Яростный Меч 02.09.2013 15:12

Цитата:

Сообщение от imediasun1
чтобы каждый последующий аякс запрос происходил только по успешному завершению предыдущего

следующий запрос вызывать в конце success.

imediasun1 02.09.2013 15:14

Это понятно, а пример можете привести ведь я не знаю сколько запросов будет надо какой то цикл сформировать, а вот тут у меня проблема возникает не знаю как это осуществить

Яростный Меч 02.09.2013 15:26

примерно так:

var arr = ... // массив с инпутами

(function _req(i) {
    if (i<arr.length) {
       $.ajax({
          url: '...',
          success: function(data){
              ... data ... ; // что-то делаем с полученными данными
              _req(i+1); // след. запрос
          }
    }
})(0);

imediasun1 02.09.2013 15:31

А что за ноль в конце? и еще не обессудьте но с jquery мало знаком как определить массив с инпутами.?

Яростный Меч 02.09.2013 15:43

Цитата:

Сообщение от imediasun1
А что за ноль в конце?

индекс первого элемента в массиве. for ведь тоже с нуля начинаем.
Цитата:

Сообщение от imediasun1
как определить массив с инпутами.?

например, $('input:text').

imediasun1 02.09.2013 15:49

В значении каждого инпута data для исполнения в пхп скрипте как это значение передать в аякс, . И вопрос номер дванапример класс инпутов input, так можно определить массив.?
var arr=$('.input');

Яростный Меч 02.09.2013 19:25

Цитата:

Сообщение от imediasun1
так можно определить массив.?
var arr=$('.input');

можно.

потом
$.ajax({
     url: '...',
     type: 'POST',
     data: { file: arr[i].value },
...


в результате в $_POST['file'] окажется имя файла, если не ошибаюсь.


Часовой пояс GMT +3, время: 07:17.