2012-01-11 12 views
2

私はselect要素を持つ単純なhtmlフォームを持っています。選択されたオプションを定義するには、私は PHPでhtmlフォームの選択されたオプションを定義する

$value

<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> 

として selectedを追加するPHPコードから来ている変数です。この方法は非常に簡単で素朴なようです。そうするのが最善の方法ですか?

+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>"; 

    ?> 
関連する問題