2017-09-02 73 views
0

我有一個有很多條目的表單,有很多選擇從mysql的表中獲取他們的數據,工作正常,我的表單將所有輸入發送到$ _post就好了。問題出在選擇部分。該頁面從mysql表中加載信息,並填充除select字段外的所有字段。選擇字段向用戶顯示文本名稱,並將2位數字傳遞到帖子。問題是,當頁面加載Post時,所有選擇字段都會填充列表中第一個選擇對象的值。所以,簡而言之,所有(40)字段在我提交時會被覆蓋。除非我經歷所有的下拉菜單並將它們設置回原來的設置,否則它們都會改變,而不是理想的。我怎樣才能在下拉列表中保留一個值

echo "<tr><form action='update.php' method='post'>"; 
    echo"<td><input type='hidden' name='id' value='".$row['id']."'></td>"; 
    echo"<td><input type='hidden' name='name' value='".$row['templatename']."'></td>"; 
    echo"<td><input type='text' name='keyname1' value='".$row['keyname1']."'><readonly</td>"; 
    echo"<td></select><select name='lk1'>"; 
    while($rowA = mysqli_fetch_assoc($result1)) { 
     echo '<option value="' . $rowA['keytype'] . '">' . $rowA['keyname'] . '</option>'; 
    } 
    echo"</select></td>"; 
    echo"<td><input type='text' name='lk1value' value='".$row['lk1value']."'></td>"; 
    echo"<td><input type='text' name='lk1label' value='".$row['lk1label']."'></td>"; 
    echo "<td><input type='submit'>"; 

感謝

回答

0

您可以通過使用selected="selected"屬性標誌着一個<select>列表作爲啓動/默認值的<option>元素。當你在while循環,並檢查當前$row項是用戶之前已經選擇了一個,你可以生成輸出如下:

while ($rowA = mysqli_fetch_assoc($result1)) { 
    if ($row['yourFieldInTheDatabase'] == $rowA['keytype']) { 
     echo '<option value="'.$rowA['keytype'].'" selected="selected">'.$rowA['keyname'].'</option>'; 
    } else { 
     echo '<option value="'.$rowA['keytype'].'">'.$rowA['keyname'].'</option>'; 
    } 
} 
+0

嗯,也許我是沒有什麼我需要明確的,儘管答案很接近。字段lk1中已經有數據。我需要顯示這些數據。選擇將已經從另一個頁面填充蜜蜂。這個頁面讓用戶可以「編輯」他們之前輸入的內容。右側未選中顯示選項值中最後一個可能的可選值。 –

+0

@EdLentz這就是爲什麼只應根據數據庫中的值爲用戶選擇的行打印「selected =」selected「'的原因。你必須添加一個'if'語句來檢查用戶是否選擇了當前選項。根據此檢查,您輸出的是否選擇了「selected =」屬性。 – Progman

+0

所以我會使用if語句來確定他們是否選擇了該字段,如何顯示頁面加載時的原始條目。沒有意思是密集的,有頭冷,有點霧 –

相關問題