我怎样才能在下拉列表中保留一个值
问题描述:
我有一个有很多条目的表单,有很多选择从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'>";
感谢
答
您可以通过使用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>';
}
}
嗯,也许我是没有什么我需要明确的,尽管答案很接近。字段lk1中已经有数据。我需要显示这些数据。选择将已经从另一个页面填充蜜蜂。这个页面让用户可以“编辑”他们之前输入的内容。右侧未选中显示选项值中最后一个可能的可选值。 –
@EdLentz这就是为什么只应根据数据库中的值为用户选择的行打印“selected =”selected“'的原因。你必须添加一个'if'语句来检查用户是否选择了当前选项。根据此检查,您输出的是否选择了“selected =”属性。 – Progman
所以我会使用if语句来确定他们是否选择了该字段,如何显示页面加载时的原始条目。没有意思是密集的,有头冷,有点雾 –