Как сохранить состояние просмотра в php (magento)


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

Мой код таков:

public function createPostAction(){

        $valid = $this->_validation();
        $arguments = $this->getRequest()->getPost();

        if( $valid === true){
            parent::createPostAction();
        }else{

            $this->_redirect('*/*/create',$arguments);
        }
    }

    protected function _validation()
    {
        $errors = array();

        $continue = Mage::helper('addressapi/data')->Address($this->getRequest()->getPost(), 'customer');
        if (!$continue) {
            $errors[] = Mage::getSingleton('core/session')->addError('Please Enter the Correct Address details.');
        }

        if (empty($errors)) {
            return true;
        }


        return $errors;
    }

Как я могу связать viewstate данные после формы postback.

Заранее благодарю.

Author: Magento007, 2014-08-27

1 answers

Вы можете сохранить значения, отправленные по почте в сеансе.
Что-то вроде этого:

public function createPostAction(){

    $valid = $this->_validation();
    $arguments = $this->getRequest()->getPost();

    if( $valid === true){
        parent::createPostAction();
    }else{
        Mage::getSingleton('core/session')->setAddressapiPostData($arguments);
        $this->_redirect('*/*/create',$arguments);
    }
}

Затем в шаблоне, который отображает форму, проверьте, есть ли какие-либо данные в сеансе.

$sessionValues = Mage::getSingleton('core/session')->getAddressapiPostData(true); 

Параметр true заставит Magento извлекать значения и удалять их из сеанса, чтобы вы не видели те же значения при следующем просмотре формы.
Если в var $sessionValues есть какие-либо значения, добавьте их в форму. Каждое поле для каждого ввода.

 1
Author: Marius, 2014-08-27 06:56:43