显示基于组合框选择的结果

时间:2013-04-09 17:48:32

标签: php

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

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

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

2 个答案:

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