2013-05-22 1 views
5
<?php 
$options = array('volvo'=>'Volvo', 'saab' =>'Saab', 'audi' => 'Audi'); 
echo "<select name='sss'>\n"; 
foreach ($options as $k=>$v) echo "<option value='$v' >$k</option>\n"; 
echo "</select>\n"; 
?> 

질문 :방법 PHP에서 선택 상자의 기본값을 설정하는

방법 대신에 '볼보'의 기본 값으로 '아우디'를 만들기 위해? html로 'selected'를 설정할 수 있지만이 PHP 스크립트에서 어떻게 할 수 있습니까? 하고 출력하기 전화를 한 후

function showSelect($name, $options, $selected, $attr = array()){ 
    $str = "<select name='".$name.'"'; 
    foreach($attr as $name=>$val){ 
     $str.= " ".$name."='".$val."'"; 
    } 
    $str.=">"; 
    foreach($options as $k=>$val){ 
     $str.= "<option value='".$val."'".($val==$selected?" selected='selected'":"").">".$k.'</option>'; 
    } 
    $str.="</select>"; 
    return $str; 
} 

을 선택하기위한

$defaultVal = 'Audi'; 
foreach ($options as $k=>$v) { 
    $selected = ($v == $defaultVal) ? " selected='selected'" : ""; 
    echo "<option value='$v'$selected>$k</option>\n"; 
} 
+0

'Volvo' 대신 배열의 처음에'Audi'를 왜 넣지 않으시겠습니까? –

답변

6

당신은 이미 확인 된 HTML을 기본 값이 원하는 일 경우 감지하고 삽입 할 수 단지

echo showSelect("sss", $options, "audi", array("id"=>"manufacturer")); 
2

내가 보통 도우미 함수를 만듭니다

0
Try this: 

$options = array('volvo'=>'Volvo', 'saab' =>'Saab', 'audi' => 'Audi'); 
$select_value = 'audi'; 

<select id="test" name="test"> 
<?php foreach($option as $row) {?> 
    <option value="<?php echo $row?>" <?php echo (strcmp($select_value,$row)==0) ?"selected='selected":'' ?>><?php echo $row?></option> 
    <?php } ?> 
</select> 
관련 문제