2013-04-09 56 views
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按钮,如何使值保持选定状态?

+1

请将您'display_Id()'代码,以获得帮助质疑。 – barbashov 2013-04-09 17:51:28

+0

您需要在'display_Id()'方法中将选项标记为选中状态。您可以从'$ _POST ['ID']' – 2013-04-09 17:52:32

+0

中获得所选选项的值我已经添加了display_Id(); – deepz 2013-04-09 17:57:06

回答

0

从某种意义上说,您的问题并不完整,您没有此处显示的dislay_Id()代码。然而,一般来说,你应该<option value="something"编程之后添加selected

代码应该是这样的:

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>"; 
+0

我在

+0

我认为你的代码为每个值添加了一个选定的内容? – cipher 2013-04-09 17:59:34

+0

是的,它确实添加了选择。 – deepz 2013-04-09 18:01:01

0
while($rows = mysql_fetch_array($result)) 
{ 
    $flightNum = $rows['FlightNo']; 
    echo "<option value=\"$flightNum\" "; 
    if($_POST['ID'] == $flightNum) 
    { 
     echo " selected"; 
    } 
    echo "> $flightNum </option>"; 
} 
+0

我刚刚尝试过这一点,并选定的值刷新 – deepz 2013-04-09 18:05:33

+0

谢谢。这工作。 – deepz 2013-04-09 18:14:31

+0

太棒了!你能否将这改变为未来访客接受的答案? :) – verbumSapienti 2013-04-09 18:26:07

相关问题