Как правильно обработать ответ ajax post

271
07 марта 2017, 15:54

Доброго времени суток.

Только начал осваивать технологию AJAX. Совсем сломал голову. Не понимаю как мне правильно обработать ответ от сервера.

Моя функция:

function email() {
  var res = ''; // результирующая строка - пока пустая.
  var elem = document.getElementById('mail');
  var str = elem.value; // текст из формы.
  var list = str.split("\n"); // разбивка...
  for (var i = 0; i < list.length; i++) {
    str = list[i];
    // пустые строки пропускаем...
    if (str.length < 1) continue;
    // проверка наличия такого емайла в базе...
    request = $.ajax({
      type: "POST",
      url: "email_check.php",
      data: "email=" + str,
      success: function(request, res) {
        if (request == "1") {
          res = res + str + '(есть)' + "\n";
        } else {
          res = res + str + '' + "\n";
        }
      }
    });
  }
  elem.value = res;
}

Т.е. у меня есть редактируемое поле на странице - id='mail';. Туда заносятся адреса электронной почты, разделенные знаком переноса строки. Далее происходит их разбиение на отдельные элементы по символу переноса строки. Далее - каждый такой отдельный адрес - я проверяю запросом к серверу на уникальность. Если такой уже есть, email_check.php - вернет "1", если нет - то "0".
Моя задача - снова получить этот же список email - то у тех которые уже есть - нужно дописать (есть)+\n, т.е. снова получить такой же список с переносами строк и прописать его обратно в форму в элемент mail.

Спасибо заранее.

Answer 1

Данную задачу проще решать на сервере так:

  1. Получаем дынные из поля
  2. Шлем на сервер
  3. Разделяем (split("\n") только на стороне сервера если но PHP то через explode)
  4. Запускаем цикл в нем проверяем и сразу дописываем валидные в переменную
  5. Поcле успеха отправляем клиенту (браузеру)
  6. Вставляем в поле

В ином случае при большом кол-ве данных вы устраиваете некий DDOS на свой сервер

READ ALSO
onscroll при отсутствии сколла

onscroll при отсутствии сколла

Есть такой код, который говорит, что при скроллинге скролл достигнул конца страницы

299
Как работает функция click в jquery?

Как работает функция click в jquery?

Вот например, что делает вот эта?

314