我从MySql数据库中获取显示为选择框的选择列表,这很好。同时,我试图使用php从选择框中选择一个特定的选项,这不起作用,我真的不知道原因:(。这是代码:
$route = "CLIFTON";
echo "<form>";
echo "<select>";
while ($row = mysql_fetch_assoc($get_route))
{
echo "<option ";
if (isset($route))
{
if ($route == $row['route'])
{
echo "selected='selected'";
}
}
echo ">";
echo $row['route'];
echo "</option>";
}
echo "</select>";
echo "</form>";
假设有几条路线从数据库中提取到一个选择框,其中一条包含一个值,即CLIFTON
,我也定义了一个值&#34; CLIFTON&#34;在$route
变量中为方便起见。到目前为止,我已经得出结论:当它到达点if ("CLIFTON" == "CLIFTON")
时,它应该回显所选属性并且选项未被选中。
我的问题是,为什么它不进入if块?我真的坚持这个:(,有人请帮助我吗?先谢谢。
答案 0 :(得分:0)
您可以在单个变量中选择每个选项,如下所示:
while ($row = mysql_fetch_assoc($get_route))
{
$option = "";
$option = "<option ";
if (isset($route))
{
if ($route == $row['route'])
{
$option .= "selected='selected'";
}
}
$option .= ">";
$option .= $row['route'];
$option .= "</option>";
echo $option;
}
答案 1 :(得分:0)
根据您的期望,您的代码很好。
我认为问题是它没有达到这个条件
if ($route == $row['route'])
{
die("Here");
echo "selected='selected'";
}
检查您的代码是否达到此条件。那是你的条件是真的。如果是,那么它将显示所选项目。代码本身没有错误。放置die()
功能以测试天气是否满足条件。
答案 2 :(得分:0)
所以,我以某种方式解决了这个问题,问题出现在我从数据库中获取的字符串中,由于字符串中的空格,它没有进入if块,比较(“CLIFTON”==“CLIFTON “)返回假,我没注意到那个空白。所以,在比较两者之前我添加了以下内容:
$row['route'] = preg_replace('/\s+/', '', $row['route']);
为了获得更好的表现:
$row['route'] = trim($row['route']);
那个太空的东西花了我一天的时间,但是不管怎样都谢谢大家:)