2012-01-11 2 views
2

나는 select 엘리먼트를 가진 간단한 html 폼을 가지고 있습니다. 선택된 옵션을 정의하려면, 나는 PHP에서 html 폼의 선택된 옵션 정의하기

<option value="10" <?php if($value == '10') {echo 'selected="selected"';}?>>10</option> 
<option value="20" <?php if($value == '20') {echo 'selected="selected"';}?>>20</option> 
<option value="50" <?php if($value == '50') {echo 'selected="selected"';}?>>50</option> 

$value는 PHP 코드에서 오는 변수입니다 selected

로 추가. 이 방법은 매우 간단하고 순진한 것 같습니다. 그렇게하는 것이 가장 좋은 방법입니까?

+1

모든 옵션을 반복하고 '

+2

함수를 작성하십시오. 수천 번 더 양식 입력을 작성합니다. –

+1

또는 더 나은 방법은 양식 엔진을 사용하는 것입니다. –

답변

2

좋지 않은 방법입니다. 프로그래밍 방식 사용하여 전체 일 작성하지 왜하지만 (즉, 배열을 통해 PHP 루프를 사용하여 코드를 생성) : 아래 작동합니다의 라인을 따라

$items = array(10, 20, 50); 
for ($i = 0; $i < count($items); $i ++) { 
    echo("<option value='" . $items[$i] . "'"); 
    if ($items[$i] === $value) { 
     echo(" selected='selected'"); 
    } 
    echo(">" . $items[$i] . "</option>"); 
} 
0

값을 배열에 유지하고 반복하여 HTML을 생성하십시오. 그렇다면 자신을 반복 할 필요가 없습니다.

0
<?php foreach($list as $key => $value): ?> 

    <option value=<?php echo $value ?> <?php echo $value == $selected? 'selected' : '' ?> ><?php echo $value ?></option> 

<?php endforeach ?> 

희망을 얻으십시오.

+1

프리젠 테이션을 로직과 분리하면 더 깨끗합니다. PHP가 템플릿 엔진으로 도입 된 지 수년이 지났습니다. –

+0

템플릿 엔진이 최상의 접근 방법이라는 데는 동의하지만,이 솔루션은 html을 구제하는 기능과 템플릿 엔진을 배우는 것보다 훨씬 간단합니다. – Nacho

3
$options = array(10,20,50); 
foreach($options as $option) { 
    $selected = ($value == $option) ? ' selected="selected"' : ''; 
    echo '<option value="' . $option . '"' . $selected . '>' . $option . '</option>'; 
} 
+0

누군가가 체계적으로 된 것처럼 보입니다. 코멘트없이이 질문에 대한 모든 대답을 downvoting –

+0

동의했다. 사람들과 무슨 상관이야? –

1

뭔가 :

<? 
$values = array(10, 20, 30); 

foreach ($values as $val) { 
?> 
<option value="<?=$val?>" <?=($value==$val ? "SELECTED" : "")?>><?=$val?></option> 
<? 
} 
?> 
0

이를 내가하는 것처럼 :

 <? 
    $values = array(10,20,30,......); 
$value = XXX; 

echo "<select name='somename'>"; 

foreach($values as $v) 
{ 
if($v == $value) 
{ 
echo "<option value='$v' 'selected'>$v </option>"; 

} 
else 
{ 
echo "<option value='$v'>$v </ option> "; 
} 


} 
echo "</select>"; 

    ?> 
관련 문제