2009-09-02 7 views
0

다음은 내가 사용자의 생일을 선택하는 드롭 다운 목록에있는 오래된 PHP 함수입니다.이 날짜의 날짜 부분 일뿐입니다. str_pad을 0으로 추가하는 것을 볼 수 있습니다. 1-9까지의 숫자에이 작업을 수행하는 더 좋은 방법이 있습니까?PHP 날짜 드롭 다운 목록

<?PHP 
$date_combo .= '<select name="' . $pre . 'day" class="' .$style. '">'; 
$date_combo .= "<option value=''>Day</option>"; 
for ($i = 1; $i <= 31; $i++) { 
    $date_combo .= " <option "; 
    if ($i == $selected_date_day) { 
     $date_combo .= " selected "; 
    } 
    $date_combo .= " value='" . str_pad($i, 2, "0", STR_PAD_LEFT) . "'>" . str_pad($i, 2, "0", STR_PAD_LEFT) . "</option>"; 
} 
$date_combo .= "</select> "; 

echo $date_combo; 
?> 

답변

2

str_pad에 대한 대안은 sprintf를 사용하는 것입니다.
코드 :

str_pad($i, 2, "0", STR_PAD_LEFT) 

이된다 : 그것은 2 개 문자 폭 패딩 제로와 정수로 $i을 인쇄합니다

sprintf("%02d", $i) 

.
sprintf 설명서를 참조하십시오.

+0

정말 고마워요. – JasonDavis

0

select를 작성하기 위해 배열을 허용하는 일반 함수를 만들 수 있습니다.

function formSelect($name, array $options, $selected) 
{ 
     $output = '<select name="' . $name . '">'; 

     foreach($options as $key => $value) 
     { 
      $output .= '<option value="' . $key . '"'; 

      if($selected == $key) { 
       $output .= ' selected="selected"'; 
      } 

      $output .= '>' . $value . '</option>'; 
     } 

     $output .= '</select>'; 

     return $output; 
} 

출력물과 몇 가지 다른 것들을 피해야합니다.

그럼 당신은 옵션의 배열을 구축하고에 되었 보이는데 훨씬 좋네요 옵션 목록을 구축 한 후 바로 호출 할 수 있습니다.

echo formSelect('birth[day]', $days, 1);