Как предварительно заполнить пользовательскую форму после ошибки при отправке формы в Magento? - PullRequest
5 голосов
/ 06 августа 2011

Как я могу получить предварительно заполненную форму в случае ошибки при заполнении какого-либо элемента (ов) формы в Magento?

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

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

Любая помощь будет весьма ощутимой.

Спасибо

Ответы [ 2 ]

0 голосов
/ 03 марта 2015

Способ, которым Magento может справиться с подобной ситуацией, заключается в сеансах .Данные, хранящиеся в сеансах, будут постоянными в течение всех запросов, и вы сможете использовать эти данные позже (после перенаправления, изменения страницы и т. Д.)

С другой стороны, по одному запросу вы можете проверитьузнать, как использовать методы реестра Magento Mage::register() / Mage::registry().Реестр можно использовать, когда вам нужно сохранить данные по одному и тому же запросу (без перенаправления), например, на бэкэнд-модулях при использовании кнопки « Сохранить и продолжить ».

Чтобы использовать сеансы: установите некоторыеданные в сеансе клиента (или, при необходимости, в другом) с:

Mage::getSingleton('customer/session')->setData('myDataName', $myData);

Например, когда данные публикуются, и вы находитесь в каком-либо postAction, вы сохраняете опубликованные данные в сеансе клиента.

Например:

$post = $this->getRequest()->getPost();
Mage::getSingleton('customer/session')->setData('postedData', $post);

Затем вы можете получить эти данные с помощью

$myData = Mage::getSingleton('customer/session')->getData('postedData');

, а затем поиграть с этими данными в форме внешнего интерфейса:

<input value="<?php echo $myData->getName()?>" type="text"/>
0 голосов
/ 07 августа 2011

Получите значения, используя:

$myParam = $this->getRequest()->getParam('my_param');

или используйте

$params = Mage::app()->getRequest()->getParams(); 

и заполните его в форме.

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