2011-11-15 3 views
1

이 젠드 것은 나중의 일부입니다. 나중에 무언가를 용서할 수있는 끔찍한 혼란입니다.하지만 구조가 없으며 문서가 끔찍한 데, 항상 저를 이끌고 있습니다. 행운의 장소는 입니다. stackoverflow입니다.기본값은 Zend_Form_Element_Select입니다.

<select>을 초기화하려고하는데 기본값이 Please Choose One이고, 사용자가 Please Choose One을 값으로 선택하면 오류가 발생합니다. 내가 부정적인 일치 정규식, 경사 때문에 내가 그것을 할 dosent 일을하는 방법 아니면 내가?

$pubs = array(
     "Please Choose One" => "Please Choose One", 
     "BBC" => "BBC", 
     "Channel 4" => "Channel 4" 
); 

$channels = new Zend_Form_Element_Select("publication"); 
$channels->setLabel("Channels") 
    ->setRequired(true) 
    ->addMultiOptions($pubs) 
    ->addValidator('regex', true, array(
      "pattern" => "/Please Choose One/", 
      "messages" => array("regexNotMatch" => "Please choose a publisher") 
     ) 
    ) 
    ->setValue("Please Choose One"); 

P.S 나는 마음이 주변의 일을 변경하고 더 나은 방법을 사용 해달라고.

+0

쉬운 방법은 defaut에 옵션 '의 값을 설정하고 인덱스 작업을 해달라고으로'notEmpty' 유효성 검사기를 –

답변

2

대신 Zend_Validate_InArray을 사용하면 어떨까요? regexp (항상 약간 까다 롭습니다)를 무효로 할 필요가 없습니다. 귀하의 경우에는

, 그것은

$ channels- 같은> addValidator ('inArray'사실, 배열 ("BBC"=> "BBC", "채널 4"것 => " 채널 4 ")); 도움이

희망,

+0

매력처럼 작동합니다. 정확하게 무엇을 찾고 있습니까? –

1

선택 상자를 선택하지만 setRequired(true)이 있습니까? 그건 맞지 않아.

"하나를 선택하십시오"가 선택되면 여러 옵션에서 "하나를 선택하십시오"라는 값을 얻었습니다.

$pubs = array(
    null   => "Please Choose One", 
    "BBC"  => "BBC", 
    "Channel 4" => "Channel 4" 
); 

나는 빈 항목을 할 때, 내가 지금처럼 내 옵션 배열을 만드는거야, 내 코드의 일부를 보면 :

$multiOptions = array(); 
if (!$options->required) $multiOptions[] = false; 

을 그래서 기본적으로 multioptions을 시작 난 당신이 원하는 생각 빈 자리.

+0

'null'을 설정하는 것입니다. 그게 좀 이상한 것 같아 –

+0

첫 번째 요소를 false로 두어 의미하는 것을 알 수 있습니다. 나는 당신이 정말로 당신이 의미하는 것을 이해하기 위해 더 큰 미리보기를 줄 필요가 있다고 생각합니다. –