Отправка нескольких post в jquery

программирование JavaScript jQuery

Есть инструмент почтовой рассылки.
Чтобы не было проблем с временным ограничением на выполнение скрипта - отправка идет через ajax jquery.

Логика такая: отправляется (POST) запрос, он выполняет отправку N писем и, если еще есть получатели, возвращает в яваскрипт текст - "Отправлено M писем из K...". В яваскрипте проверяем, если есть ответ, то надо отправить этот-же POST запрос еще раз. Таким образом запрос будет выполняться столько раз, сколько получателей деленное на N.

На mootools такое делал без проблем.
Но на jquery никак не получается((

Вот пример кода:

$('form#formajax').submit(function(event){
event.preventDefault();
$('.alert').remove();
var log = $('<div class="alert" style="display: block;">Отправка данных...</div>');
$('#footer').after(log);
$.post(this.action, $(this).serialize(),
function(e) {
if (e)
{
log.html(e);
// вот тут нужно выполнить действие, которое запустит этот же POST запрос
}
else window.location = $('#referer').val();
});
});

Знаю как запустить на обработку всю форму заново, но этот вариант не подходит - потому что log перезаписывается фразой "Отправка данных...", а этого делать нельзя, т.к. в log уже записано "Отправлено M писем из K..." возвращенных выполненным запросом.

Примечание:
"Без имени"

Я прекрасно знаю принцип работы аякса на джквери.
И гуглом пользоваться умею не плохо.

Попробуйте перечитать вопрос еще раз.

Примечание:
slo_nik

Адресаты берутся из базы.
Да, всем адресатам одно письмо.
Рассылка новостей компании подписчикам.

На стороне PHP логика такая:
- при первом обращении получатели выдергиваются из базы и загоняются в сессию (массив)
- в цикле до N идет отправка индивидуальных (подставляется имя адресата, индивидуальная ссылка на "отписаться") писем каждому
- как достигли N отправлений - цикл прерываем, массив с получателями укорачиваем (от начала) на количество отправленных писем
- возвращаем в яваскрипт текст "отправлено M писем из K..."
- когда массив с получателями опустел - возвращаем пусто, явасрипт выдает - "все отправлено" и больше запрос не отправляет
Ответы:
$.post("test.php", {какой-то объект});
http://api.jquery.com/jQuery.post/#jQuery-post1
список адресатов где Вы берёте?
Всем адресатам одно и тоже письмо отправляете?ть
есть замечательный оператор do while.
собственно
do{
$.post(this.action, $(this).serialize(),
function(e) {
if (e)
{
log.html(e);
}
}while(e!="Все письма отправлены");
ну и собственно в обработчике указать, что если все письма отправлены, то вывести
"Все письма отправлены"
Профит!


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.