Вход

Просмотр полной версии : Перезагрузить страницу после $.each


Mukhtar
05.03.2013, 10:23
Еще вопрос...

Я выполняю отправку данных в массиве dataArray $.post запросом в цикле $.each...

вот код

var sid='asdsda134234';
$.each(dataArray, function(index, file) {
$.post(data:dataArray);
});


Где мне поставить location.href='myfile.php?sid='+sid;?

Может какое условие нужно будет прописать, потому что если ставлю после $.each, то запрос $.post выполняется один раз?

danik.js
05.03.2013, 10:28
За $.post в цикле руки нужно отрывать.
$.post(data:dataArray) - тут синтаксическая ошибка.
После перехода на другую страницу текущая выгружается, вместе со всеми скриптами, причем выполнение скриптов останавливается.

Mukhtar
05.03.2013, 10:34
За $.post в цикле руки нужно отрывать.
$.post(data:dataArray) - тут синтаксическая ошибка.
После перехода на другую страницу текущая выгружается, вместе со всеми скриптами, причем выполнение скриптов останавливается.

Кто-то поставил все-таки + ))))

Я знаю, но это не мой скрипт ))), я его нашел в сети... Теперь пытаюсь дописать свой. А мне позарез надо прикрутить переход на другую страницу с $_GET['sid']

danik.js
05.03.2013, 10:41
Нередко найденное в сети - унылое Г.
Так или иначе от цикла нужно избавиться.
А мне позарез надо прикрутить переход на другую страницу с $_GET['sid']

А $_POST['sid'] чем не устраивает? Противоречит вашим религиозным убеждениям?

Кто-то поставил все-таки + ))))
Таки да..

Mukhtar
05.03.2013, 11:11
Нередко найденное в сети - унылое Г.
Так или иначе от цикла нужно избавиться.

А $_POST['sid'] чем не устраивает? Противоречит вашим религиозным убеждениям?


Таки да..

Тут не суть важна $_POST или $_GET... Нужно поставить location.href так, чтобы все запросы выполнились, а потом произошло перенаправление. А у меня только один раз проходит цикл и сразу перенаправляет. :)

Mukhtar
05.03.2013, 11:14
Тут не суть важна $_POST или $_GET... Нужно поставить location.href так, чтобы все запросы выполнились, а потом произошло перенаправление. А у меня только один раз проходит цикл и сразу перенаправляет. :)

Разобрался ))))) надо было перед перенаправлением return false; поставить. :dance:

danik.js
05.03.2013, 11:15
Код покажи? Все что после return - не выполняется, мертвый код.

Mukhtar
05.03.2013, 13:45
Код покажи? Все что после return - не выполняется, мертвый код.


$('#upload-button .upload').click(function() {

// Показываем прогресс бар
$("#loading").show();
// переменные для работы прогресс бара
var totalPercent = 100 / dataArray.length;
var x = 0;

$('#loading-content').html('Загружается '+dataArray[0].name);
// Для каждого файла
$.each(dataArray, function(index, file) {

// загружаем страницу и передаем значения, используя HTTP POST запрос
$.post('./actions/upload.php', {data: dataArray[index], file: dataArray[index].name, sid: sid}, function(data) {

var fileName = dataArray[index].name;
++x;

// Изменение бара загрузки
$('#loading-bar .loading-color').css({'width' : totalPercent*(x)+'%'});
// Если загрузка закончилась
if(totalPercent*(x) == 100) {
// Загрузка завершена
$('#loading-content').html('Загрузка завершена!');

// Вызываем функцию удаления всех изображений после задержки 1 секунда
setTimeout(restartFiles, 1000);
// если еще продолжается загрузка
} else if(totalPercent*(x) < 100) {
// Какой файл загружается
$('#loading-content').html('Загружается '+fileName);
}

// Формируем в виде списка все загруженные изображения
// data формируется в upload.php
var dataSplit = data.split(':');
if(dataSplit[1] == 'загружен успешно') {
$('#uploaded-files').append('<li><a href="/user_uploads/photos/'+dataSplit[0]+'">'+fileName+'</a> загружен успешно</li>');

} else {
$('#uploaded-files').append('<li><a href="/user_uploads/photos/'+data+'. Имя файла: '+dataArray[index].name+'</li>');
}

});
});
// Показываем список загруженных файлов

return false;
location.href='add_classified?sid='+sid;
});

danik.js
05.03.2013, 13:48
Так я и думал ))
location.href='add_classified?sid='+sid;

Этот код не выполнится никогда. Можешь смело его удалять продолжать танцевать :haha:

Mukhtar
05.03.2013, 16:29
так он же выполняется

Mukhtar
05.03.2013, 16:32
Так я и думал ))

Этот код не выполнится никогда. Можешь смело его удалять продолжать танцевать :haha:

:blink: Опа, оказывается нифига не выполняется ((...

Куда ставить перенаправление? ))

danik.js
05.03.2013, 16:46
Сделай скрытую форму с method = POST, заполни скрытые поля и отправь ее.

Mukhtar
05.03.2013, 17:01
Сделай скрытую форму с method = POST, заполни скрытые поля и отправь ее.

Перед return false? а там потом если вдруг нажмут F5 не будет выходить сообщение о потере данных?

danik.js
05.03.2013, 17:30
На сервере делать редирект. Тогда F5 ни к чему не приведет.
Или можешь дождаться выполнения xhr-запроса и по получению ответа с сервера сделать переход на нужную страницу.

Mukhtar
05.03.2013, 17:34
На сервере делать редирект. Тогда F5 ни к чему не приведет.
Или можешь дождаться выполнения xhr-запроса и по получению ответа с сервера сделать переход на нужную страницу.

Второе мне кажется будет приемлемо, не подскажешь где можно инфу почитать, а то я в javascripte почти 0 )))

danik.js
05.03.2013, 17:40
От цикла избавился? Давай код

Mukhtar
05.03.2013, 18:03
От цикла избавился? Давай код

нет, не избавился )))... Если бы мог, то избавился бы, а так боюсь менять что-либо в коде...