3

양식의 모든 필드를 편집하는 것은 드롭 다운 메뉴를 제외하고 올바르게 채워지지만 잘못된 것이 무엇인지 파악할 수 없습니다.Zend_Form 드롭 다운 요소에 대해 선택된 값을 설정할 수 없습니다.

여기에 내가 가지고 내 컨트롤러의 편집 작업에서 "옵션"

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; 
} 
} 

에 클래스를 추가 할 수 있도록

 $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); 

나는 사용자 정의 요소를 사용하고 내 양식의

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

하나만 제외하고 모든 필드가 정확히 채워집니다.

나는

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

을 시도했다 그러나 그것은 작동하지 않았다.

이제 Google에서 사용하는 맞춤 요소로 뭔가를 추측하고 있지만 (Google에서 코드를 찾았습니다) 수정할 수있는 방법을 모르므로 나에게 도움이 될 것입니다.

+0

일이 너무이 "selectAttribs"보기 도우미에 따라 달라집니다. 거기에 뭐가 있는지 보여줄 수 있어요? – Michael

+1

당신은 절대적으로 옳습니다. 문제는 도우미에있었습니다. 그것은 꽤 엉망이었습니다. 저자는 원래의 zend 함수를 사용하여 요소를 렌더링하고 "selected"속성을 설정하는 등 많은 기능을 제거했습니다. 다행히도 나는 그것을 고칠 수 있었다 – kasztelan

+1

당신의 자신의 질문에 대한 답변을 작성하고 그것을 수락하십시오! – markus

답변

1

내가 1 그럼 난 기본적으로 9를 선택하고 10에서 숫자 드롭 다운 만들려면 다음 코드를 사용하여이 코드의

$var = new Zend_Form_Element_Select('ElementName'); 

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

    $priority->setValue(9); 
관련 문제