簡體   English   中英

提交后保留選擇標簽的值-PHP

[英]Retain Value of Select Tag after Submit - PHP

我正在嘗試增加老師的工作量。 在將用戶輸入插入我的工作負載表之前,我需要進行驗證,主要是為了檢測計划沖突。

現在,我想要保留用戶的選定值,並在驗證失敗后再次顯示它。 這樣,用戶不必再次選擇主題名稱,班級名稱和班級顧問。

我已將我的代碼附加到班級顧問的選擇上。

 <?php $link = mysqli_connect("localhost", "root", "", "smis"); $sql = "SELECT * FROM teacherData"; $result = mysqli_query($link,$sql); echo "<select id='modalINPUT' name='teacherID' required>"; echo"<option value=''>Select Adviser</option>"; while ($row = mysqli_fetch_array($result)) { echo "<option value='".$row['teacherID']."'>".$row['Fname'] ." ". $row['Mname'] ." " .$row['Lname'] . "</option>"; } echo "</select>"; ?> /* Once validation fails, is there a way where I can display the selected value? Like display the name of the teacher. */ 

是的,您可以使用:

$teacherID = !empty($_POST['teacherID']) ? $_POST['teacherID'] : '';

就在您的SQL查詢之前

然后要在選擇框上顯示選定的值,您可以檢查發布的ID是否與當前ID匹配,並為相應的選項字段打印出選定的參數:

echo '<option value="'.$row['teacherID'].'"'.($teacherID == $row['teacherID'] ? ' selected="selected"' : '').'>'.htmlspecialchars($row['Fname']) .' '. htmlspecialchars($row['Mname']) .' ' .htmlspecialchars($row['Lname']) . '</option>';

編輯:看看我編輯過的答案-使用單引號以獲得更好的性能(因此PHP不必掃描雙引號字符串中的vars),並且始終處理您的信息,這些信息是使用htmlspecialchars從數據庫中獲得的,因此您不必當不正確的東西被保存到數據庫中時,搞砸了你的html

編輯:也不要從MYSQL表中選擇所有數據,除非需要。 要獲得性能,請僅選擇查詢中需要的字段:

$sql = 'SELECT teacherID, Fname, Mname, Lname FROM teacherData';

您可以將發布的值與當前行的ID進行比較。 如果值相同,則添加selected屬性。

// create $selected variable to get "selected" or "":
$selected = isset($_POST['teacherID']) && $_POST['teacherID'] == $row['teacherID'] 
          ? 'selected' : '' ;

// add $selected to the <option> tag:
echo "<option value='".$row['teacherID']."' $selected>"
    . $row['Fname'] ." ". $row['Mname'] ." " .$row['Lname'] 
    . "</option>";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM