2012-10-08 231 views
7

我在我的PHPHTML選擇選項來選擇

$sel = " 
    <option> one </option> 
    <option> two </option> 
    <option> thre </option> 
    <option> four </option> 
"; 

讓說,我有一個內嵌URL = site.php?sel=one

,如果我沒有保存在一個變量這些選項,我能做到這樣要使選項之一來選擇其中的值等於$_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> 

但問題是,我需要保存這些選項的變量,因爲我有很多的選擇,我需要CAL l那個變量很多次。

有沒有辦法讓選項被選中value = $_GET[sel]

+0

如何的是,選擇所產生?它是硬編碼的嗎? –

+1

當你說你將它們存儲在一個變量中時,我假設你的意思是一個數組,對吧? – BenM

+0

無論是本說,或者我假設你通過拍攝變量,你使用分配給選項的值而不是名稱。我會爲它寫一個簡單的函數,並且每次調用它,讓它通過一個if else語句來運行。爲您節省大量編碼或複製粘貼。 – Dorvalla

回答

11

只需使用選項數組,即可查看當前選擇了哪個選項。

$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的每個元素,否則你可能會遇到問題,當兩個選項具有相同的字符串表示。

+0

謝謝@sirko,但發現一些錯誤 沒有'var',它必須是$ i

+2

更正了這個問題。 – Sirko

0

您遺漏報價$_GET['sel'] - 固定這可能幫助您解決問題遲早:)

6
foreach($array as $value=>$name) 
{ 
    if($value == $_GET['sel']) 
    { 
     echo "<option selected='selected' value='".$value."'>".$name."</option>"; 
    } 
    else 
    { 
     echo "<option value='".$value."'>".$name."</option>"; 
    } 
} 
+0

這將爲選定的值輸出**兩個**值。你的意思是把第二個迴音換成「else」嗎? – TRiG

+0

是的,這是我的錯誤......它應該在其他部分。 –

+0

selected ='selected'作品 – kta

0
foreach ($array as $value => $name) { 
    echo '<option value="' . htmlentities($value) . '"' . (($_GET['sel'] === $value) ? ' selected="selected"') . '>' . htmlentities($name) . '</option>'; 
} 

這是相當整潔,而且,我認爲,不言自明。

2

這是簡單的例子,通過使用三元操作員設置所選=選擇

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