0

嗨,有人可以帮我吗?我真的很难将我的 if 语句放在这段代码中

<select name="date_opened_year">
<?php 
define('DOB_YEAR_START', 1962);
$current_year = date('Y');

for ($count = $current_year; $count >= DOB_YEAR_START; $count--)
{
    echo "<option value='{$count}'>{$count}</option>";
}
?>
</select>

我在这里有一个代码,我在其中放置了 if 语句

<select name="date_opened_year">
<?php 
define('DOB_YEAR_START', 1962);
$current_year = date('Y');

for ($count = $current_year; $count >= DOB_YEAR_START; $count--)
{
    echo "<option value='{$count}' if($yy == $count) echo 'selected'>{$count}</option>";
}
?>
</select>

$yy = 2003 好吧,它来自数据库中的查询,当我查看代码时,它给了我类似的东西

<option 'selected'="" echo="" 2012)="" if(2003="=" value="2012">2012</option>

这是为什么?任何人都可以修改代码吗?谢谢

4

3 回答 3

3

试试这个:

$selectStr = ($yy == $count) ? 'selected': '';
echo "<option value='".$count."' ".$selectStr.">".$count."</option>";

最好拆开。

您的 if 在字符串创建双引号内。

于 2012-11-25T06:45:17.520 回答
1

做这个:

if($yy == $count){ 
   echo "<option value='{$count}' selected='selected'>{$count}</option>";
}
于 2012-11-25T06:47:04.620 回答
1

Echo 不会评估 if 语句。尝试使用 printf 或此的@DCoder 解决方案:

echo "<option value='{$count}'";
if($yy == $count) echo 'selected';
echo ">{$count}</option>";
于 2012-11-25T06:49:43.693 回答