2013-04-09 107 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

相關問題