0

我有一个名为town的下拉选项。已获取的值将在数据库表 townId 的下拉列表中可用。现在我想检查用户是否没有从下拉列表中选择任何选项并直接转到保存按钮,然后它应该像这样显示“请在下拉列表中选择您的选择”。表格命名为大学

我在这里尝试了这段代码:

  if(Zend_Form_Element_Submit)
        {
            if($$townid=='')
                {   alert("U Must Choose Town Name Here");

                }
            else
                {
                    $submit = new Zend_Form_Element_Submit('Save');
                    $submit->setDecorators($this->submitDecorators)
                    ->setAttrib('class','button slategray');
                }

        }

在 models->university.php 里面有一些我没有得到的下拉动作:

public function setOptions(array $options)
{
    $methods = get_class_methods($this);
    foreach ($options as $key => $value) {
        $method = 'set' . ucfirst($key);
        if (in_array($method, $methods)) {
            $this->$method($value);
        }
    }
    return $this;
}

在我编辑表单->大学之前(保存代码已经退出)

$submit = new Zend_Form_Element_Submit('Save');
    $submit->setDecorators($this->submitDecorators)
        ->setAttrib('class','button slategray');
                }

提前致谢。

4

2 回答 2

0

为了正确使用 Zend Framework 的表单,我建议尝试这种方法:

Zend_Form通过扩展类创建表单

class Form_User extends Zend_Form

它会自动让您访问容器以管理此表单中的所有元素,并让您访问一种isValid()允许您一次验证所有表单元素的populate()方法以及一种允许您将数据提供给表单以进行编辑的方法

在您的新类 ( Form_User) 中,您可以在方法中定义所有表单属性和元素init()

public function init()
{
    $this->setName('user')
    ->setAttrib('id', 'user');

    $username = new Zend_Form_Element_Text('username');

    $town = new Zend_Form_Element_Select('town');
    $town->addMultioptions(array(...));

    $submit = new Zend_Form_Element_Select('submit');

    $this->addElements(array($username, $town, $submit));
}

这些元素中的每一个都可以使用标签、描述、一些验证器、一些过滤器等进行自定义。

如果要强制元素,可以将Required属性设置为true

$town->setRequired(true);

要在提交后验证您的表单,您可以简单地执行此操作(假设您在控制器中执行此操作):

$form = new Form_User();
$postData = $this->getRequest()->getPost();
$form->isValid($postData);

这将检查必填字段并执行您在这些不同元素上设置的任何验证器。

如果一切正常,它将返回 true,如果有错误,它将返回 false。如果您再次显示表单时遇到错误,则错误消息将自动显示在每个错误字段旁边。

如果你想设置表单元素的选项值,当你初始化表单时,你可以像这样传递一个配置数组:

$form = new Form_User(array('townListOptions' => array(...));

关联的方法setTownListOptions将被自动调用,并将接收您分配给它的数组(或任何其他对象)。

我可以解释更多关于表格的事情,但正如@Rohan 在他的评论中所说,RTM

于 2012-04-05T15:02:28.157 回答
-2

在 asp.net 中

<asp:DropDownList ID="ddlusertype" runat="server" CssClass="dropdown"  ></asp:DropDownList>
<asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="ddlusertype" ErrorMessage="select" Font-Size="XX-Small" Operator="NotEqual" Type="Integer" ValueToCompare="0"></asp:CompareValidator>
于 2012-04-04T06:14:13.407 回答