2011-07-01 69 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>";