我有一个动态组合框,我有我的获取按钮。当用户从组合框中选择一个值并单击“获取”按钮时,所有其他相关值将显示在文本框中,供用户编辑和更新记录。这很好。
<form id="form1" method="post" action="edit.php">
<select name="ID" id="select">
<?php display_Id();?>
</select>
<input type="submit" name="Fetch" id="Fetch" value="Fetch" />
</form>
function display_Id() {
$query = "SELECT * FROM Flight";
$result = mysql_query($query) or die("Failed to fetch records");
confirm_query($result);
while($rows = mysql_fetch_array($result)) {
$flightNum = $rows['FlightNo'];
echo "<option value=\"$flightNum\" ";
echo " selected";
echo "> $flightNum </option>";
}
}
问题出在“获取”按钮中。当用户单击“提取”时,将显示其他值,但组合框中的选定值正在刷新。即使在按下“获取”按钮后,如何使值保持选中状态?
答案 0 :(得分:0)
您的问题在某种意义上是不完整的,即您没有显示此dislay_Id()
代码。但是,一般来说,您应该在selected
之后以编程方式添加<option value="something"
,
代码应该是这样的:
function displayId(){
if($value[x]== $currentValue) {
echo "<option value='$value[x]' selected>sth</option>";
}
else
{
echo "<option value='$value[x]'>sth</option>";
}
}
编辑::您的代码为每个值添加“已选择”,您只能将“已选择”添加到当前值。
因此,您的代码必须如下所示:
echo "<option value=\"$flightNum\" ";
if($_POST['ID'] == $flightNum)
{
echo " selected";
}
echo "> $flightNum </option>";
答案 1 :(得分:0)
while($rows = mysql_fetch_array($result))
{
$flightNum = $rows['FlightNo'];
echo "<option value=\"$flightNum\" ";
if($_POST['ID'] == $flightNum)
{
echo " selected";
}
echo "> $flightNum </option>";
}