Zend框架以更新的形式显示数据库条目

时间:2014-01-15 05:43:25

标签: php mysql forms zend-framework zend-form

我想在我想要在表单中显示现有数据之前编辑特定的表行。 从我使用表单装饰器显示。
如果我评论表单装饰器IT工作正常。

我使用了$ form-> populate($ row);但它没有填写表格。

请查看以下adminController.php代码

public function indexAction() {           
        $form = new Application_Form_articleForm();
        $this->view->form = $form; 
        $content  = new Application_Model_Content();  
        $id =  $this->_request->getParams('id');        
        $row = $content->find($id)->toArray();
        $form->populate($row[0]);
}

模型文件

<?php
class Application_Model_Content extends Zend_Db_Table
{
   protected $_name = "content";   

}

表格

<?php
class Application_Form_articleForm extends Zend_Form
{
   public function init()
   {
       $this->setMethod('post');      
       $id = $this->createElement('hidden','id');
       $content_name = $this->createElement('text','content_name');
       $content_name->setLabel('URL name:')
                   ->setAttrib('size',250);    

$this->addElements(array(  
           $id,               
           $content_name               
       ));

      $this->setDecorators(array(array('viewScript', array('viewScript' => 'admin/articleFormDecorator.phtml'))));
   }
}

articleFormDecorator.phtml

 <form action="" method="post" enctype="application/x-www-form-urlencoded">
            <header><h3>Post New Article</h3></header>
                        <div class="module_content">
                            <fieldset>
                    <label>URL name</label>
                                    <input type="hidden" name="id" id="id">
                            </fieldset>  
                <fieldset>
                    <label>Content</label>
                    <textarea rows="12" name="content_name" id="content_name"></textarea>
                    </fieldset>

请帮我以表格形式获取价值。

2 个答案:

答案 0 :(得分:1)

你可以添加这样的条件,

if ($this->getRequest()->isPost()) 

然后更新值并将其存储在数据库中的过程

而在其他方面,您可以填充表单,如

else{

            $id = $this->_getParam('id', 0);
            if ($id > 0) {
               $row = $content->find($id)->toArray();
               $form->populate($row[0]);
    }

答案 1 :(得分:0)

我得到了解决方案 我们需要在表单

中添加带有表单元素的下面一行
$content_name = $this->createElement('text','content_name');
       $content_name->setLabel('URL name:')
                   ->setAttrib('size',250);    

并在html中显示表单元素,如下面的表单装饰文件

中所示
<?php echo $this->element->content_name ?>