以下是我的Php代码,所有国家都来自mysql数据库。这是一个用户配置文件区域,用户可以在其中更新他们的国家名称。但是在他提交他的国家名之后不是selected (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>
单引号内不解析变量。您可以对语句中的其他变量使用串联,但不使用$sel…
echo '<option value="'.$id.'"' . $sel . '>'.$data.'</option>';
请试试:-
<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>
在PHP中,单引号中的字符串不会解析其内容中的变量。因此,$sel
将像这样被打印。可以单独使用$sel
('<option value="'.$id.'" '.$sel.'>'
),也可以使用双引号("<option value='"$id'" $sel>"
)。