0

我有一个动态组合框,我有我的 Fetch 按钮。当用户从组合框中选择一个值并单击获取按钮时,所有其他相关值都显示在一个文本框中,供用户编辑和更新记录。这很好用。

<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>";
    }       
}

问题出在 Fetch 按钮上。当用户单击 Fetch 时,其他值正在显示,但组合框中的选定值正在刷新。即使按下 Fetch 按钮,如何使值保持选中状态?

4

2 回答 2

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>";
于 2013-04-09T17:57:15.853 回答
0
while($rows = mysql_fetch_array($result))
{
    $flightNum = $rows['FlightNo'];
    echo "<option value=\"$flightNum\" ";
    if($_POST['ID'] == $flightNum)
    {
        echo " selected";
    }
    echo "> $flightNum </option>";
}
于 2013-04-09T18:01:00.517 回答