2011-07-01 66 views
1

我想在下拉菜單的一個選項被默認選中,請查看代碼選擇了不與內部for循環<option>標籤工作/ while循環

<?php 
class html{ 

    function output(){ 

     $html='<td>'.'<select id="out">'; 
     for($i=0;$i<21;$i++){ 
      $html.='<option value="$i" if($i==5) { selected } >'. $i .'</option>'; 
     } 

     return $html; 
    } 
} 

echo html::output(); 
?> 

在這裏我要值5被選中默認情況下,但我得到的選擇值爲20.謝謝!

+0

程序不工作的方式。 –

+0

我沒有跟着你,對不起你能否說清楚。這裏有什麼問題 – work

回答

1

你行不正確。用這個代替:

$html .= '<option value="' . $i . '"' . ($i==5 ? ' selected="selected"' : '') . '>' . $i . '</option>'; 

我正在使用ternary comparison operator

+0

是的正確@Francois Thankyou – work

2

把你如果條件了引號的

for($i=0;$i<21;$i++) 
{ 
    $selected=($i==5) ? 'selected' : ''; 
    $html.="<option value='$i' $selected>". $i ."</option>"; 

} 
+0

由於引用不當會導致失敗。根據所需的HTML版本/依從性,也可能是錯誤的。 –

+0

@ignacio:不恰當的引號在哪裏? –

+0

您之前有單引號中的第二行。 –

1

這裏的問題是

$html.='<option value="$i" if($i==5) { selected } >'. $i .'</option>'; 

SolutionL

$html.="<option value=\"$i\" ".($i==5? "selected": ""). "$i </option>";