Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

как остаться на странице после отправки сообщения

Автор Текст сообщения

Светлана
Сообщений: 38

Сделана форма на основе каталога материалов. В catalog.php сделана обработка submit.
Все нормально работает. Проблема вот в чем. После нажатия на кнопку (submit) уходим со страницы, на которой находится форма.
А надо чтобы это работало как apply, т.к. при нажатии на sumbit, в php идет проверка введенного пароля и в случае ошибки выводится окно на js. После закрытия окна надо иметь возможность продолжить ввод пароля.
Если вызывать A::goUrl страницы с формой, то происходит сброс введенных значений в полях формы.

Как это можно сделать?
aristoc

admin
Сообщений: 1159

Проблема вот в чем. После нажатия на кнопку (submit) уходим со страницы, на которой находится форма.
Почему?
Если вызывать A::goUrl страницы с формой...
Не нужно вызывать в обработчике A::goUrl, тогда та же самая страница и должна открыться (если action для формы не указан явно), при этом введенные данные будут доступны через $smarty.request.поле

Светлана
Сообщений: 38

Виталий писал(а):
Проблема вот в чем. После нажатия на кнопку (submit) уходим со страницы, на которой находится форма.
Почему?
на странице вставлен блок Список материалов. Шаблон изменен таким образом, чтобы форма была трехстраничная. Управление видимостью с помощью js. После нажатия на кнопку (submit) перебрасывает со страницы с формой на главную страницу каталога материалов.
Как избежать этого переброса?




aristoc

admin
Сообщений: 1159

Какой action указан у формы? Нужно его не указывать совсем, или указывать на текущую страницу.

Светлана
Сообщений: 38

action указан {$sectionlink}
это модуль каталог материалов и соответственно обработка action сделана в catalog.php

если в форме не указывать action или указывать на текущую страницу, то куда поместить обработку action?
aristoc

admin
Сообщений: 1159

На странице какого раздела у вас сама форма размещена? Если каталога, то не указывайте просто action в форме и все.

Светлана
Сообщений: 38

сама форма  размещена в разделе страницы
aristoc

admin
Сообщений: 1159

Тогда как вариант убрать action из формы и обработчик отправки разместить в модуле Страницы.

Светлана
Сообщений: 38

Сделала как посоветовали. Убрала action из формы и обработчик отправки разместила в модуле Страницы.
Действительно, перебрасывать в каталог материалов перестало. Но происходит обновление страницы, на которой размещена форма. В результате чего поля формы сбрасываются и соответственно форма открывается с первого шага. Хочется чтобы визуально не происходило ничего, т.е. данные в форме оставались и по-прежнему находились бы на третьем шаге формы.
aristoc

admin
Сообщений: 1159

Ну так что же вы хотите.
Хотели чтобы и страница вообще не обновлялась? тогда изучайте ajax, делайте свой специальный модуль отправки формы.
Я не знаю что там за форма и почему после отправки она должна оставаться такой же и что там вообще за данные в ней.

Светлана
Сообщений: 38

ajax, конечно, надо изучить :-)
но пока надо обойтись без него.
в форме используется метод post. Хотела использовать value="{$smarty.post.xxx}", но почему-то  $smarty.post не возвращает значения полей.
Не подскажете, в чем может быть проблема?
aristoc

admin
Сообщений: 1159

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