Php Zend框架如何在表单中维护以前的值
我正在使用zend form和form decorator查看表单。 提交此表单后,如果出现任何错误(验证),我的表单将变为空白 如何在表单中恢复以前的值。如果表单提交成功,则表单应为空 articleForm.phpPhp Zend框架如何在表单中维护以前的值,php,mysql,zend-framework,Php,Mysql,Zend Framework,我正在使用zend form和form decorator查看表单。 提交此表单后,如果出现任何错误(验证),我的表单将变为空白 如何在表单中恢复以前的值。如果表单提交成功,则表单应为空 articleForm.php <?php class Application_Form_articleForm extends Zend_Form { public function init() { $this->setMethod('post');
<?php
class Application_Form_articleForm extends Zend_Form
{
public function init()
{
$this->setMethod('post');
//$id = $this->createElement('hidden','id');
$name = $this->createElement('text','name');
$name->setLabel('URL name:')
->setAttrib('size',250);
$title = $this->createElement('text','title');
$title->setLabel('Title:')
->setAttrib('size',250);
$group_id = $this->createElement('select','group_id');
$group_id->setLabel('Category:')
->addMultiOptions(array(
'US' => 'United States',
'UK' => 'United Kingdom'
));
$tags = $this->createElement('text','tags');
$tags->setLabel('Tags:')
->setAttrib('size',250);
$status = $this->createElement('text','status');
$status->setLabel('status:')
->setAttrib('size',250);
//$Publish = $this->createElement('submit','Publish');
$Publish = new Zend_Form_Element_Submit('Publish');
$Publish->setLabel("Publish")
->setIgnore(true);
$allowed_tags = array(
'a' => array('href', 'title'),
'strong',
'img' => array('src', 'alt'),
'ul',
'ol',
'li',
'em',
'u',
'strike');
$content = new Zend_Form_Element_Textarea('content');
$content->setLabel('content')
->setAttrib('rows', 12)
->setAttrib('cols', 40)
->setRequired(true)
->addFilter('StringTrim')
->addFilter('StripTags', $allowed_tags);
$this->addElements(array(
$name,
$title,
$group_id,
$tags,
$content,
$status,
$Publish
));
$this->setDecorators(array(array('viewScript', array('viewScript' => 'admin/articleFormDecorator.phtml'))));
}
}
我也遇到以下错误例外信息: 消息:SQLSTATE[42S22]:未找到列:“字段列表”中的1054未知列“发布”
“发布”是“提交”按钮。请根据需要修改您的操作 您需要添加unset($formData['Publish'])
使用zend form populate函数将值填充到表单中。如何在验证失败(
$form->isValid(\u request->getParams())
)后将其与表单装饰文件一起使用表单应填充所有it字段(密码除外)。这是默认情况下完成的。也许你可以添加你的验证代码。发布你的代码,因为没有代码它无法知道你在做什么…添加的代码请检查
public function indexAction() {
$mysession = new Zend_Session_Namespace('Admin');
if (!isset($mysession->adminName)) {
$this->_redirect('/admin/login');
}
$form = new Application_Form_articleForm();
$this->view->form = $form;
$content = new Application_Model_Content();
if ($this->_request->getPost('Publish')) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) { //If form data is valid
$content->insert($formData);
}
}
}
public function indexAction() {
$mysession = new Zend_Session_Namespace('Admin');
if (!isset($mysession->adminName)) {
$this->_redirect('/admin/login');
}
$form = new Application_Form_articleForm();
$this->view->form = $form;
$content = new Application_Model_Content();
//$data = $content->fetchAll($content->select());
if ($this->_request->getPost('Publish')) {
$formData = $this->_request->getPost();
if ($form->isValid($formData)) { //If form data is valid
unset($formData['Publish']);
$content->insert($formData);
}
}
}