3

フォーム内のすべてのフィールドを編集すると、ドロップダウン メニューを除いて正しく入力され、何が問題なのかわかりません。

これが私のフォームです

        $katModel = new Model_Kategoria();
        $kategorie = $katModel->getKategorie(0);

        $katList = new External_Form_Element_SelectAttribs('kategoria');
        $katList->setLabel('Kategoria: ');
        $katList->isRequired(true);
        if(isset($kategorie)) {
            foreach($kategorie as $k) {
                $katList->addOption($k['id'], $k['kategoria'], array('class' => 'level-' . $k['depth']));
            }
        }
        $this->addElement($katList);

カスタム要素を使用しているので、「オプション」にクラスを追加できます

class External_Form_Element_SelectAttribs extends Zend_Form_Element {

public $options = array();

public $helper = 'selectAttribs';

/**
 * Adds a new <option>
 * @param string $value value (key) used internally
 * @param string $label label that is shown to the user
 * @param array $attribs additional attributes
 */
public function addOption ($value,$label = '',$attribs = array()) {
    $value = (string) $value;
    if (!empty($label)) $label = (string) $label;
    else $label = $value;
    $this->options[$value] = array(
        'value' => $value,
        'label' => $label
    ) + $attribs;
    return $this;
}
}

私のコントローラーの編集アクションでは、

$zadanie = $zadanieModel->find($id)->current();
$zadanieForm->populate($zadanie->toArray());

その1つを除くすべてのフィールドにcorretlyを入力します

私はもう試した

$zadanieForm->kategoria->setValue(7);
$zadanieForm->setDefault('kategoria', 7);   

しかし、うまくいきませんでした。

今、私が使用しているカスタム要素で何かを推測しています(Googleでコードを見つけました)が、それを変更する方法がわからないので、うまくいきます。

4

1 に答える 1

1

次のコードを使用して、1 から 10 までの数字でドロップダウンを作成します。次に、デフォルトとして 9 を選択しています。

$var = new Zend_Form_Element_Select('ElementName');

    for ($i = 1; $i <=10; $i++) {
        $priority->addMultiOption($i,$i);
    }

    $priority->setValue(9);
于 2012-12-05T15:08:47.783 に答える