我正在尝试根据教师的工作量添加主题。我在将用户输入插入工作负载表之前进行了验证,主要用于检测计划冲突。
现在,我想要的是保留用户的选定值,并在验证失败后再次显示。这样用户就不必再次选择主题名称,类名和类顾问了。
我附上了我的代码供选择顾问。
<?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.
*/
答案 0 :(得分:1)
是的,您可以使用:
$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不必扫描双引号字符串以获取变量),并始终处理您使用htmlspecialchars从DB获取的信息,因此您当不正确的东西保存到DB中时,不要弄乱你的HTML
编辑:除非你需要,否则也不要从MYSQL表中选择所有数据。要获得性能,请仅在查询中选择所需的字段:
$sql = 'SELECT teacherID, Fname, Mname, Lname FROM teacherData';
答案 1 :(得分:0)
您可以将发布的值与当前行的ID进行比较。如果值相同,请添加function hideImg() {
document.getElementById("image1").style.display = "none";
document.getElementById("close").style.display = "none";
}
属性。
selected