2011-02-12 70 views
0

我需要一些关于PHP语法的帮助。 我如何可以添加按照下面一行行基本的PHP语法帮​​助

if ($month == $dbmonth) echo ' selected="selected"'; 

,期权价值

$monthOptions .= "<option value=\"$month\" >$month</option>\n"; 

,使它看起来像里面:(假设$dbmonth = 3

<option value="3" selected="selected" > 3 </option> 

感谢您的帮助

回答

2
echo '<option value="'.$month.'"' 
    .($month==$dbmonth?' selected="selected':'') 
    .'>'.$month.'</option> 

我想是你要什么(使用的在线状态,(<condition>?<true outcome>:<false outcome>)

如果这是一个循环:

for ($month = 1; $month < 13; $month++) 
    echo '<option value="'.$month.'"' 
     .($month==$dbmonth?' selected="selected':'') 
     .'>'.$month.'</option> 

你也可以打破它了更清楚一些:

for ($month = 1; $month < 13; $month++) 
{ 
    $selected = ''; 
    if ($month == $dbmonth) 
    $selected = ' selected="selected"'; 
    echo "<option value=\"{$month}\"{$selected}>{$month}</option"; 
} 
+0

感谢您的详细解释。 – adam 2011-02-12 18:34:40

0

你可以做这样的事情。

$monthOptions .= "<option value=\"$month\"" 
if ($month == $dbmonth) $monthOptions .= ' selected="selected"'; 
$monthOptions .= ">$month</option>\n"; 
0

其他建议工作,但为便于阅读,我宁愿:

$selected = ($month == $dbmonth) ? ' selected="selected"' : ''; 

$monthOptions .= "<option value=\"$month\" $selected >$month</option>\n"; 

还有少面条代码,并最终可以过渡到某种模板系统。