【发布时间】:2016-07-26 16:09:39
【问题描述】:
我的第一个问题,如果不合适,请忽略。
我有一个用 php 编码的下拉菜单,用于选择一个值。设置的值是 'Off', 0, 1, 2, ... 179(即总共 181 个值)。
一开始,下拉列表正确显示了所有 181 个值。
从下拉列表中选择值后,按下其他按钮以调用 mysql 过程。调用完成后,页面会刷新。
下拉菜单应该在页面刷新时保留所选值,它确实如此。不过应该允许用户更改这些值。
但是,在第一页刷新后,如果我尝试从下拉列表中选择不同的值,我在那里看到的只是之前选择的值 181 次。
下面是代码,有人可以帮忙解决一下吗
我不是 php 程序员,只是试图修复我的资源留在那里的故障。
<select style="width: 87px; height:35px;color:#113C83;margin-bottom:0;border-right-width:0;" id="angle1">
<option value="Off">Off</option>
<?php
for($i=0;$i<=179;$i++)
{
if(isset($_SESSION['angle1']))
{
?>
<option value="<?php echo $_SESSION['angle1']; ?>" selected><?php echo $_SESSION['angle1']; ?></option>
<?php
}
else
{ ?>
<option value="<?php echo $i; ?>"><?php echo $i; ?></option>
<?php
}
} ?>
</select>
【问题讨论】:
-
那是因为您已经设置了
$_SESSION['angle1'],导致isset($_SESSION['angle1'])为真,并且从未进入else条件。 -
一个快速而肮脏的解决方法是将您的 if 语句更改为
if(isset($_SESSION['angle1']) && $i == $_SESSION['angle1']) -
@HardysonArthy:我能够根据您的输入修复它并且它有效。非常感谢。
-
@Drakes:巧合的是,我也做了同样的修复。为什么说它很脏,考虑到现有代码,我认为它很整洁。有没有更好的办法?我不懂php。
-
@kpv 介意标记我的答案吗? :D