Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend框架如何在表单中维护以前的值_Php_Mysql_Zend Framework - Fatal编程技术网

Php Zend框架如何在表单中维护以前的值

Php 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');

我正在使用zend form和form decorator查看表单。 提交此表单后,如果出现任何错误(验证),我的表单将变为空白

如何在表单中恢复以前的值。如果表单提交成功,则表单应为空

articleForm.php

<?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);
            }
        }
    }