0

以下是我的 PHP 代码,所有国家/地区都来自 mysql 数据库。这是一个用户个人资料区域,用户可以在其中更新他们的国家名称。但是在他提交他的国家名称后它没有被选中(html selected = selected)。可能是我的$sel变量问题。有人可以修复它吗?

<select name="country" class="country"> 
<?php
$sql=mysql_query("select * from country");
while($row=mysql_fetch_array($sql))
{
$id=$row['Code'];
$data=$row['Name'];

    if($data == $country2)
    {
        $sel = 'selected = "selected"';
    }
    else
    {
        $sel = "";
    }

echo '<option value="'.$id.'" $sel>'.$data.'</option>';
}
?>
</select>       
4

3 回答 3

4

变量不在单引号内解析。您对语句中的其他变量使用连接,但不是 $sel...

echo '<option value="'.$id.'"' . $sel . '>'.$data.'</option>';

或切换到双引号..

于 2013-01-20T14:15:53.090 回答
1

请试试这个: -

<select name="country" class="country"> 
<?php
$sql=mysql_query("select * from country");
while($row=mysql_fetch_array($sql))
{
$id=$row['Code'];
$data=$row['Name'];

    if($data == $country2)
    {
        $sel = 'selected = "selected"';
    }
    else
    {
        $sel = "";
    }

echo '<option value="'.$id.'"' . $sel . '>'.$data.'</option>';
}
?>
</select>       
于 2013-01-20T14:16:58.990 回答
0

在 PHP 中,单引号中的字符串不会解析其内容中的变量。$sel因此将像那样打印。$sel单独使用( '<option value="'.$id.'" '.$sel.'>') 或使用双引号 ( "<option value=\"$id\" $sel>")。

于 2013-01-20T14:16:27.330 回答