我创建了一个员工列表,其中包含一些字段,其中也包含下拉列表。问题是,每当我选择编辑选项并重定向到编辑页面时,下拉列表中的值都会被设置为我查询它的数据库中的第一个值。我想将下拉列表的值设置为与选择编辑选项之前预定义的值相同,即如果我选择要编辑的区域,并且其值在编辑之前为T5,我希望选择相同的值,而不是T1相反,我在编辑页面中使用的代码是
<?php
$sql = "SELECT DISTINCT `territory` FROM se_ae ";
?>
<select name="territory">
<?php foreach ($dbo->query($sql) as $row) { ?>
<option value="<?php echo $row['territory']; ?>">
<?php echo $row['territory']; ?></option>
<?php }
?>
有人能帮我吗。
因为您已将值保存在变量中。你可以尝试作为
<?php foreach ($dbo->query($sql) as $row) { ?>
<option value="<?php echo $row['territory']; ?>" <?php echo ($territory == $row['territory']) ? 'selected' : '';?>>
<?php echo $row['territory']; ?></option>
<?php } ?>
添加<?php echo ($territory == $row['territory']) ? 'selected' : '';?>
您可能有一个存储员工字段的变量,对吧?如果你不这样做,你应该,毕竟你正在编辑它的数据,所以你应该显示当前数据,这样你就可以更改你想要的。
让我们把这个变量称为$employee
。
<?php $sql = "SELECT DISTINCT `territory` FROM se_ae "; ?>
<select name="territory">
<?php foreach ($dbo->query($sql) as $row) { ?>
<?php $selected = ($row['territory'] == $employee['territory']) ? 'selected' : '' ?>
<option value="<?php echo $row['territory']; ?>" <?php echo $selected; ?>>
<?php echo $row['territory']; ?>
</option>
<?php } ?>
</select>
这样,对于每个区域,您都会检查它是否等于员工区域,如果是,它会将selected
参数添加到标记option
中。