2011-12-17 3 views
0
public static function select($name, $options_array, $key_as_value=true, $selected="!NO!") 
    { 
     $html = "<select name='$name'>\n"; 

     foreach($options_array as $key => $val) 
     { 
      $option_value = ($key_as_value) ? $key : $val; 
      $option_display = $val; 
      $selected = ($selected != "!NO!" && $selected == $option_value) ? " SELECTED" : ""; 

      $option = "<option value='$option_value'$selected>$option_display</option>\n"; 
      $html .= $option; 
     } 

     $html .= "</select>\n"; 

     return $html; 
    } 

이것은 $ 선택 항목을 전달하면 SELECT 요소를 생성하는 PHP 코드입니다. 원하는 옵션이 선택됩니다. 문제는 기본값을 "! NO"로 설정하는 것이 매우 추한 것입니다. 하지만 FALSE가 0을위한 synonim이고 값이 "0"인 옵션이 예상대로 작동하지 않기 때문에 FALSE로 만들 수 없습니다.select 요소를 반환하는 PHP 함수

이 문제에 대한 제안이 있으십니까?

+1

어떻게 널 (null)에 대해? 매개 변수와 in-loop 변수로 $ selected를 사용합니다. 확실합니까? val/option_value 중 하나가 "SELECTED"이거나 비어 있으면 어떻게됩니까? –

+0

'FALSE'는'0'과 동의어가 아닙니다. 예,'0 == FALSE'이지만'0'은'int'이고'FALSE'는'bool'입니다. 그러므로'0! == FALSE'. 자세한 내용은 @dkamins의 답변을 참조하십시오. –

+0

실행 코드를 복사하려고합니다. 발 또는 키를 표시하고 있습니까? –

답변