您好我一直在处理一个表格,其中有一个下拉菜单,它的值来自数据库。我的问题是它在提交表单后没有显示所选的值。可能是什么问题?
<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>
答案 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
希望它会有所帮助:)