Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Необходимо написать простой веб-интерфейс.

Внешний вид интерфейса - простейшая форма: - поле ввода и кнопка "найти".

В поле ввода клиент заносит название города и в результате поиска

получает список пунктов самовывоза в этом городе (если они есть),

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

Логически задача реализуется двумя частями:

1. Служебная часть. Есть сайт, который в ответ на наш POST-запрос отдает нам актуальный XML-документ с перечнем пунктов -  с ним достаточно синхронизироваться раз в сутки. Т.е. первая часть интерфейса будет представлять из себя скрипт (PHP, PERL), который по Cron занесем на выполнение ежедневно в заданное время.

Алгоритм: запустился, отправил POST-запрос, получил ответ, в случае успешного получения ответа стер старую базу (SQL),

записал новую информацию, отправил сообщение на электронную почту "успешная синхронизация. дата, время, обработано ХХХ записей".

В этот момент нужно вспомнить про прямые руки - в XML-документе придет непредсказуемое количество различных спец-символов: при записи в SQL нужно предусмотреть их корректную обработку. Полное описание протокола обмена в наличии. Как в случае любого XML-там все предельно просто.

В случае неполучения ответа или превышения таймаута - отправил сообщение на электронку об ошибке синхронизации с

указанием причины.

2. Клиентская часть. Пункты самовывоза есть не везде - городов много, но все же далеко не все возможные.

Поэтому ввод названия города клиенту нужно  упростить клиенту жизнь с помощью выпадающих подсказок, а именно:

на основании имеющейся у нас базы (SQL) формируется список городов, которые будем подсказывать пользователю.

Т.е. он в поле вводит букву "С", а мы уже предлагаем ему "самару, саранск, севастополь" (скажем чуть ниже поля - в столбик).

Клиент вводит вторую букву - "А" и остается Самара и Саранск и так до

победного конца: или он выберет из предлагаемых вариантов, либо введен

что-то вроде вроде "Зырянск-на-Оби;%№*?:"

В этом случае конечно необходимо предусмотреть фильтрацию ввода от различных коварных

спецсимволов и цифр - клиент может вводить все что угодно, но это не должно ломать работу формы.

Когда клиент ввел название и нажал найти:

выдаем ему результат в DIV который находится под формой. Если клиент ищет

повторно другое название - стираем старый результат и выводим новый без

перезагрузки страницы.

Вот и все.

Обладающие всем набором необходимых компетенций - welcome.

8 лет назад
netgun
Леонид 
43 годаРоссия
14 лет в сервисе
Был
4 года назад