Захват электронной почты в процессе бронирования - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть html-страница, которая содержит поля формы регистрации, такие как адрес электронной почты и т. Д. В процессе регистрации есть шаги fiew. На первом этапе форма имеет поле адреса электронной почты.

Я хочу, чтобы пользователь вводил адрес электронной почты и по каким-то причинам оставлял форму, через какое-то время, например через 15 минут, я хочу захватить этот адрес электронной почты и отправить его на сервер. Потому что некоторые из них оставили процесс бронирования в середине. Я хочу захватить их, даже если они не завершили процесс бронирования. Я просто хочу захватить этот адрес электронной почты, используя таймер или что-то. Я использовал событие onblur () и написал некоторый код. Но мне нужна помощь, чтобы решить эту проблему.

Заранее спасибо,

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Существует буквально десятки способов сделать это.

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

Другим вариантом может быть функция javascript, которая при выходе страницы или выгрузке браузера отключает метод обновления, который вставляет таблицу.

Или вы можете использовать jquery / ajax, чтобы приони покидают поле электронной почты, оно проверяет, является ли это допустимым форматом электронной почты, и, если это так, запускает метод обновления или некоторую комбинацию из трех.

Сначала вам нужно решить, в какие моменты вы хотите захватить адрес электронной почты, а затем посмотреть, какие механизмы открыты для вас.т.е. пост при переходе от одного шага к следующему.или ajax / jquery при запуске события на странице.

1 голос
/ 06 февраля 2012

я бы использовал ответ "thenetimp", но изменил бы эти вещи

- setTimeout должно быть запущено onkeydown из текстового поля электронной почты - поскольку он будет знать, что некоторые данные естьперед выполнением вызова AJAX ..

- рекомендуется проверять правильность электронной почты с помощью Regex перед отправкой данных

через Ajax каждые 5 минут независимо от того, присутствуют ли данные или нет, илипроверка того, являются ли введенные данные полным идентификатором электронной почты или нет, не просто заполняет сервер запросами, но может привести к тому, что значения хлама будут храниться, например, ksanads@ и другие вещи .. !!

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

1 голос
/ 06 февраля 2012

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

// When the document is loaded do something.
$(document).ready(function(){
    // Do something after 5 minutes (300000 seconds)
    setTimeout('captureEmail',300000)
});

function captureEmail()
{
  // Serialize the form data and send to captureEmail.php
  $('#formId').ajax({
    url: "captureEmail.php",
    data: this.serialize(),
    success: function(){
      $(this).addClass("done");
    }
  });    
}
...