0

タウンと呼ばれる形式のドロップダウンオプションが1つあります。すでにフェッチされた値は、データベーステーブルの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 に答える