代码之家  ›  专栏  ›  技术社区  ›  Keyne Viana

如何使用zend_表单创建一个由数据库填充的复选框树?

  •  0
  • Keyne Viana  · 技术社区  · 16 年前

    我该如何使用Zend_表格?

    <ul>
    <?php foreach ($this->roles as $module => $resources): ?>
        <li>
            <?php echo $module; ?>
            <ul>
                <?php foreach ($resources as $resource => $privileges): ?>
                <li>
                    <?php echo $resource; ?>
                    <ul>
                        <?php foreach ($privileges as $id => $privilege): ?>
                        <li><input type="checkbox" name="privileges[]" value="<?php echo $id ?>" /><?php echo $privilege; ?></li>
                        <?php endforeach; ?>
                    </ul>
                </li>
                <?php endforeach; ?>
            </ul>
        </li>
    
    <?php endforeach; ?>
    </ul>
    

    我从这样的事情开始:

    class Admin_Form_AclRole extends Zend_Form {
        public function __construct($options = NULL)
        {
            parent::__construct($options);
            $this->setName('role');
    
    
    
    
            $role = new Zend_Form_Element_Text('role');
            $role->setLabel('Grupo:')
            ->addFilter('stripTags')
            ->addFilter('StringTrim')
            ->setAllowEmpty(false)
            ->setRequired(true);
    
    
    
            $privileges = new Zend_Form_Element_MultiCheckbox('foo', array(
            'multiOptions' => array(
                'foo' => 'Foo Option',
                'bar' => 'Bar Option',
                'baz' => 'Baz Option',
                'bat' => 'Bat Option'
                )
            )); 
            $privileges->addDecorator('HtmlTag', array('tag' => 'ul'));
    
    
            $submit = new Zend_Form_Element_Submit('submit');
            $submit->setLabel('Cadastrar');
    
            $this->addElements(array($role,$privileges,$submit));
    
        }
    }
    
    2 回复  |  直到 13 年前
        1
  •  1
  •   Keyne Viana    16 年前
        2
  •  0
  •   user1997028    13 年前
        $options = $db->fetchPairs(
        $db->select()->from('groups', array('id', 'caption'))
        ->where('id = ? ',$id)->order('caption ASC'), 'id');
    
        $groups = new Zend_Form_Element_MultiCheckbox('groups');
    
        $groups->addMultiOptions($options);
    
        $groups->setLabel('Choose all Groups:');
    

    ///仅当您希望对从数据库检索设置条件时才使用where ///表名为:groups