Решение, позволяющее применять запросы POST в скрытых плаваю¬щих фреймах, заключается в том, чтобы загрузить в скрытый фрейм страницу, содержащую форму, заполнить эту форму необходимой ин¬формацией и затем передать ее. Когда пользователь потребует отпра¬вить данные из видимой формы (т. е. из формы, в которую пользова¬тель вводит данные), надо будет отменить отправку формы и перене¬сти информацию в скрытый фрейм. Для этого опишем функцию, кото¬рая создает плавающий фрейм и загружает в него скрытую форму:Функция checklFrameO сначала проверяет, был ли ранее создан скры¬тый плавающий фрейм. Если нет, она вызывает функцию create-IFrarae(). Затем через определенный промежуток времени устанавли¬вается адрес страницы, которая должна быть загружена во фрейм (ProxyForm.html) и которая представляет собой скрытую страницу с формой. Поскольку эта функция может вызываться много раз, важ¬но обеспечить, чтобы эта страница каждый раз загружалась снова.
Файл ProxyForm. html очень прост. Он содержит небольшой фрагмент ко¬да JavaScript, который извещает главную страницу о том, что он быж загружен:

<Ш1е>Скрытая форма window.onload = function () { parent.formReady(); '

Как видите, тело страницы содержит только пустую форму, а загол вок - только обработчик события onload. После загрузки страницы 67 дет вызвана функция parent. formReadyO, которая даст знать основн странице, что готова принять запрос. Функция formReadyO, распол женная в главной странице, выглядит следующим образом:
Прежде всего эта функция получает ссылку на форму в скрытом вающем фрейме через массив document, forms этого фрейма. Посколь в этой странице существует всего одна форма, мы без опаски мовзять ссылку на первую форму (индекс 0) и сохранить ее в переменной oHiddenForm. Вслед за этим мы получаем ссылку на форму в главной странице и сохраняем ее в переменной oForm. Далее в цикле for выпол¬няется обход всех элементов формы главной страницы (с помощью массива elements). Для каждого элемента формы главной страницы создается соответствующий элемент формы в скрытом фрейме (обра¬тите внимание: привычное обращение document. createElementO надо за¬менить обращением oIFrame. document. createElementO). Затем вновь соз¬данному скрытому элементу присваиваются значения атрибутов name и value элемента главной формы, после чего он добавляется в скрытую форму с помощью функции appendChild().
После добавления всех элементов атрибуту action скрытой формы при¬сваивается такое же значение, как и у формы главной страницы. Бла¬годаря тому что значение атрибута action копируется, а не жестко за¬шито в код, мы получаем возможность применять одну и ту же функ¬цию formReady() на любом количестве различных страниц. В заключе¬ние функция выполняет отправку скрытой формы.
Нам осталось побеспокоиться только о том, чтобы предотвратить от¬правку главной формы обычным способом (по умолчанию). Для этого в качестве обработчика события onsubmit подставляется функция checkIFrame() и возвращается значение false:

<р>Введите сведения о клиенте:
/xbr />
/> />
<р>Имя клиента: Адрес: Город: Область: Почтовый индекс: Электронная почта:
type="text" name="txtEmail" value="

Возвращая значение false, мы тем самым отменяем поведение формы по умолчанию (отправить себя серверу). Вместо этого запускается ме¬тод checklFrameO, и начинается процесс отправки скрытой формы.
Теперь вы можете использовать этот пример точно так же, как и при¬мер, построенный на основе скрытого обычного фрейма; страница Sa-veCustome г. php будет обрабатывать данные и вызывать функцию saveRe-sult() главной страницы по окончании обработки.
Обратите внимание: примеры в этом разделе главы были специально упрощены, чтобы сконцентрировать основное внимание на методиках,задействуемьгх в Ajax. Если вы будете применять их в реальных веб-при¬ложениях, вам придется тщательнее продумать порядок взаимодейст¬вия с пользователем, например запрещать доступ к полям формы на вре¬мя выполнения запроса.

Установка вентиляции, договор обслуживания кондиционеров. Установка б/у кондиционеров. . Любая заправка картриджей epson, canon. Недорогая заправка лазерных картриджей canon. . штрих кодирование печать