2014-09-26 1 views
-1

유효성 검사를 위해 객체 지향 프로그래밍의 선택 옵션에서 ereg를 만들려고합니다. 선택한 옵션이 ereg의 일부가 아니더라도 항상 true를 반환합니다! 내 수업에서Oreg의 Ereg 선택 옵션

나는 다음과 같은 한 : 내 주요 파일에서

function makeSelect($category, $fieldName){ 
    $a = '<div>'."\n"; 
    $a .= "<select name='$fieldName'>"."\n"; 
    $a .= "<option value='' selected='true' disabled='disabled'>Pick Category</option>\n"; 
    foreach ($category as $value){ 
     $a .= "<option value='$value'>$value</option>"."\n"; 
     } 
    $a .= "</select>"."\n"; 
    $a .= "</div>"."\n"; 
    return $a; 
} 

function checkSelect($selectName){ 
    if(ereg('^[Pick]', $selectName)){ 
     $this->messageArray[$selectName] = "<span class='fail'>Please select field</span>"; 
     $this->testArray[$selectName] = false; 
    } 
    else { 
     $this->messageArray[$selectName] = "<span class='ok'>Sweet</span>"; 
     $this->testArray[$selectName] = true; 
    } 
} 

내가

$oForm->checkSelect('category'); 
+3

** 경고 : 이 기능은 PHP 5.3.0부터 사용이 권장되지 않습니다. 이 기능에 의존하는 것은 매우 바람직하지 않습니다. ** –

답변

0

로 checkSelect 기능을

$category = array(
    1=>'First Category', 
    2=>'Second Category', 
    3=>'Third Category', 
    4=>'Fourth Category' 
    ); 

으로 배열을 설정하고 전화 드렸습니다 $oForm->checkSelect('category');을 호출하면 표현식은 ereg('^[Pick]', 'category')처럼 보일 것입니다. 항상 "사실".

폼의 값을 전달해야하지만 요소의 이름은 전달할 필요가 없다고 생각합니다. 예를 들어.

$oForm->checkSelect($_POST['category']); 

P. 당신은 그것을 비 권장 코드로 쉽게 다시 쓸 수 있습니다.

preg_match('/^[Pick]/', $selectName) 

P.P. $selectName$selectedValue으로 변경하는 것이 좋습니다. 값을 확인하려하지만 이름 은요.

P.P.P.S. 또한 귀하의 패턴이 귀하의 가치와 일치하지 않을 수도 있습니다.