来自数据库表的atk4简单下拉列表

时间:2012-08-27 19:43:10

标签: forms atk4

我想填充表'accountgroups'的下拉列表,其中包含2列id和name。首次加载时,第一行下拉列表应为空白或“ - 选择帐户组 - ”。一旦用户选择了项目(即显示字段'name'和值字段'id'),我想在提交表单时获取id和name值。

2 个答案:

答案 0 :(得分:0)

您需要先为您的表创建一个模型:

class Model_AccountGroups extends Model_Table {
    public $table='accountgroups';
    function init(){
        parent::init();
        $this->addField('name');
    }
}

$form->addField('dropdown','account_id')->setModel('AccountGroups');

if($form->isSubmitted()){
    $form->js()->univ()->alert('Selected ID='.$form->get('account_id'))->execute();
}

答案 1 :(得分:0)

可能(你的帖子有一年半)你已经解决了你的问题,但我想要为这个问题贡献“我的2美分”。我环顾四周(文档,论坛等),并没有找到同一问题的另一种解决方案。我的解决方案(经过测试和工作)是这样的(请不要让我知道效率不高):

>>>>>>>>>>>>>>>>>>>>> ON MODEL
class Model_Offices extends Model_Table {
    public $entity_code='Offices';
    function init(){
        parent::init();
        $this->addField('ID')->ReadOnly(True);
        $this->addField('OfficeName');
    }

    function GetAll() {
        $r=array();
        $AllOffices = $this->SetModel('Offices');
        foreach($AllOffices as $OneOffice) {
            $r[$OneOffice['ID']]=$OneOffice['OfficeName'];
        }
        return $r;
    }
}

>>>>>>>>>>>>>>>>>>>> ON PAGE

        $m=$this->Add('Model_Offices');
        $form->addField('dropdown','Office')->SetValueList($m->GetAll()) ;
麦克