0

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

<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>
4

3 回答 3

1

在我看来,您并没有增加 $i,因此您在 while 循环的每次迭代中不断覆盖 $p1[0] 和 $p2[0]。

因此,在循环的开头或结尾添加 $i++ - 或将它们的全部使用放到数组($p1 和 $p2)中,并像在第一个代码块中一样使用 $prc 和 $prof - 或执行你需要它们吗?

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

于 2013-09-23T07:59:14.140 回答
0

将这些行更改为

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

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

希望它会有所帮助:)

于 2013-09-23T08:25:15.180 回答
0

尝试
selected="selected"

代替

selected
于 2013-09-23T07:33:06.257 回答