Astra.CMS

 

 

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

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

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

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

Светлана
Сообщений: 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

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

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.