![](/img/trans.png)
[英]How to retain the value is select2 after form submit in Codeigniter?
[英]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.