2011-03-22 5 views
0

현재 Zend 프레임 워크에서 웹 응용 프로그램을 작성하려고합니다.조건부로 Zend Form을 선택하십시오. 현재 값을 기준으로 다중 옵션을 선택하십시오.

하지만 내 시스템

예에서 상태를 관리하는 방법을 알아낼 수 없습니다 나는이 내가라는 테이블에이 값을 저장

Awaiting for Confirmation 
Asssigned 
In Progress 
Completed 
Mark As Spam 

시스템에서 처리 내 견적에 대한 다음과 같은 상태 ProviderQuoteStatus와 나는 zend_db 클래스에 ProviderQuoteStatus()라는 함수를 생성하고이 함수를 사용하여 zend form 드롭 다운 상자에 상태 값을 생성합니다.

$select = $this->select()->from("providerQuoteStatus", 
      array('key' => 'providerQuoteStatusId', 
       'value' => 'providerQuoteStatusName')); 

    $result = $this->fetchAll($select); 

return $result->toArray(); 

여기 내 젠드 양식 코드이 단계까지 잘 작동

$serviceType = new Application_Model_DbTable_ProviderQuoteStatus(); 

$serviceTypeValues = $serviceType->getProviderQuoteStatusFormValues(); 

$dropDownElement = new Zend_Form_Element_Select('providerQuoteStatus'); 

$dropDownElement->addMultiOptions($serviceTypeValues); 

모든입니다. Asssigned 단계에서 인용 난 단지 공급자가이 다음과 같은 옵션

Asssigned 
In Progress 
Completed 

을 선택하고 싶다면 어떻게 젠드 형식 드롭 다운 상자에 값 '확인을 위해 기다리는'와 '스팸 마크로서'를 제거 할 수 있습니까?

또한 이러한 비즈니스 로직을 모두 저장해야합니까 (예 : 할당 된 단계의 견적에만 할당, 진행 중 옵션 등이있을 수있는 경우)? Model DB 클래스에서? 사전에 너무 많은

감사합니다 : 당신이하고있는 것처럼 D

답변

0

당신은, $ form-init()에서 가능한 모든 옵션을 선택 요소를 채울 수 있습니다. 그러나 $form->setDefaults($defaults) 동안 요소를 수정하면 요소의 현재 값을 알 수 있으며 더 이상 적절하지 않은 옵션을 결정할 수 있습니다. 요소 값이 "할당 됨"인 경우 "대기 중"및 "스팸"옵션을 제거하십시오.

관련 문제