显示下拉列表中的选定值

时间:2013-09-23 07:29:59

标签: php select drop-down-menu echo

您好我一直在处理一个表格,其中有一个下拉菜单,它的值来自数据库。我的问题是它在提交表单后没有显示所选的值。可能是什么问题?

<select name="professional" />
        <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    echo "<option value ='$prc'>$prof</option>";
                }

            ?>
        </select>

        <select name="professional" disabled/>
            <option value="">Choose one</option>
            <?php 
                $result2 = mysql_query("SELECT * FROM professional");
                $i=0;
                while($row2 = mysql_fetch_array($result2))
                {
                    $prc = $row2['name'];
                    $p1[$i] = $prc;
                    $prof = $row2['prcno'] ."\t"."|\t".  $row2['name'] ."\t"."|\t".$row2['profession'];
                    $p2[$i] = $prof;
                    if($_POST['professional'] == $p1[$i])
                    {
                        echo "<option selected value ='$p1[$i]'>$p2[$i]</option>";
                    }
                    else
                    {
                        echo "<option value ='$p1[$i]'>$p2[$i]</option>";
                    }

                }

            ?>
        </select>

3 个答案:

答案 0 :(得分:1)

在我看来,你没有增加$ i,所以你在while循环的每次迭代中都会覆盖$ p1 [0]和$ p2 [0]。

所以在循环的开头或结尾添加$ i ++ - 或者将这些全部用于数组($ p1和$ p2)并使用$ prc和$ prof就像在第一个代码块中一样 - 或者你需要它们吗?

另一件事,尝试删除 ='$ p1 [$ i]'之间的空格 - 但我不确定这是否有问题。

答案 1 :(得分:0)

尝试
selected="selected"

代替

selected

答案 2 :(得分:0)

将这些行更改为

echo "<option selected value ='<?php echo $p1[$i]; ?>'><?php echo $p2[$i]; ?></option>";

并且不要忘记增加你的$ i

希望它会有所帮助:)