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에서 코드를 찾았습니다) 수정할 수있는 방법을 모르므로 나에게 도움이 될 것입니다.
일이 너무이 "selectAttribs"보기 도우미에 따라 달라집니다. 거기에 뭐가 있는지 보여줄 수 있어요? – Michael
당신은 절대적으로 옳습니다. 문제는 도우미에있었습니다. 그것은 꽤 엉망이었습니다. 저자는 원래의 zend 함수를 사용하여 요소를 렌더링하고 "selected"속성을 설정하는 등 많은 기능을 제거했습니다. 다행히도 나는 그것을 고칠 수 있었다 – kasztelan
당신의 자신의 질문에 대한 답변을 작성하고 그것을 수락하십시오! – markus