编辑帖子时填写多个选择

时间:2011-12-23 09:20:46

标签: php forms zend-framework

我正在Zend Framework中创建一个博客。此时我正在编辑一个博客帖子页面。

我有一个多选元素。它从数据库中获取数据。这是一个带标签的列表。 当我编辑博客帖子时,它会在我的表单中显示填充了所有可能标签的列表。现在,我想设置一些值。(选择的数据库中属于帖子的标签)。

这可能吗?

在我的表单中,我这样做是为了使用值进行多重选择

    //create form element
    $tags = $this->createElement('multiselect','tags');

    //get all tags out DB
    $tags_model = new Application_Model_DbTable_Tags();
    $tags_array = $tags_model->getAll();

    //fill the element with the tags
    foreach ($tags_array as $tag){
          $tags->addMultiOption($tag['id'], $tag['name']);
      } 

我称之为表单的控制器: 它从博客中获取数据并在表单中填充它。

         $blogpost = new Application_Model_DbTable_Blogposts();
         $data = $blogpost->load($id);
         $form->populate($blogpost->load($id));

解决方案:

$tags->setValue(array(1,4));

我必须在这里写出解决方案,因为:

 "Oops! Your answer couldn't be submitted because:
 Users with less than 100 reputation can't answer their own question for 8 hours after   asking. You may self-answer in 7 hours. Until then please use comments, or edit   your   question instead."

1 个答案:

答案 0 :(得分:0)

请参阅MultiSelect文档。使用所有值调用addMultiOptions(),然后在DB的所选值的子集上调用setMultOptions()。