[英]html select option SELECTED
我在我的 php
$sel = "
<option> one </option>
<option> two </option>
<option> thre </option>
<option> four </option>
";
假設我有一個內聯 URL = site.php?sel=one
如果我沒有將這些選項保存在變量中,我可以這樣做以使其中一個選項成為 SELECTED 值等於$_GET[sel]
<option <?php if($_GET[sel] == 'one') echo"selected"; ?> > one </option>
<option <?php if($_GET[sel] == 'two') echo"selected"; ?> > two </option>
<option <?php if($_GET[sel] == 'three') echo"selected"; ?> > three </option>
<option <?php if($_GET[sel] == 'four') echo"selected"; ?> > four </option>
但問題是,我需要將這些選項保存在一個變量中,因為我有很多選項,而且我需要多次調用該變量。
有沒有辦法在value = $_GET[sel]
的地方選擇該選項?
只需使用選項數組,即可查看當前選擇的選項。
$options = array( 'one', 'two', 'three' );
$output = '';
for( $i=0; $i<count($options); $i++ ) {
$output .= '<option '
. ( $_GET['sel'] == $options[$i] ? 'selected="selected"' : '' ) . '>'
. $options[$i]
. '</option>';
}
旁注:我將一個值定義為每個元素的某種id,否則當兩個選項具有相同的字符串表示時,您可能遇到問題。
foreach($array as $value=>$name)
{
if($value == $_GET['sel'])
{
echo "<option selected='selected' value='".$value."'>".$name."</option>";
}
else
{
echo "<option value='".$value."'>".$name."</option>";
}
}
這是一個簡單的例子,通過使用三元運算符來設置selected = selected
<?php $plan = array('1' => 'Green','2'=>'Red' ); ?>
<select class="form-control" title="Choose Plan">
<?php foreach ($plan as $key => $value) { ?>
<option value="<?php echo $key;?>" <?php echo ($key == '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option>
<?php } ?>
</select>
您可以創建一個 function,然后將其添加到每個選項字段以打印 selected="selected"。
例子
<option value="PHP" ' . tsw_selected('PHP', $row['anchor']) . '>PHP/PDO/SQL[+]</option>
<option value="HTML" ' . tsw_selected('HTML', $row['anchor']) . '>HTML/CSS</option>
然后你的樂趣:
function tsw_selected( $opt, $val )
{
$sel = '';
$opt = ('' != $opt ) ? $opt : 'OTHER';
if( $opt == $val ) $sel = true;
if ( $sel ) {
return 'selected="selected"'; } else { return ''; }
}
這將回顯 select="selected" per true 和 echo '' (nothing) for false。 您可以設置 $sel = false,但這並不重要。 布爾檢查空是否為假。
你錯過了$_GET['sel']
引號 - 修復這個可能有助於盡快解決你的問題:)
foreach ($array as $value => $name) {
echo '<option value="' . htmlentities($value) . '"' . (($_GET['sel'] === $value) ? ' selected="selected"') . '>' . htmlentities($name) . '</option>';
}
這是相當整潔的,我認為,不言自明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.