Как сохранить состояние просмотра в 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
.
Заранее благодарю.
1
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