使用php MySql动态创建选择列表但选择一个选项不起作用

时间:2015-12-17 15:05:18

标签: php mysql

我从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块?我真的坚持这个:(,有人请帮助我吗?先谢谢。

3 个答案:

答案 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']);

那个太空的东西花了我一天的时间,但是不管怎样都谢谢大家:)