为什么这个PHP代码将初始默认选择值设置为'NONE'?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么这个PHP代码将初始默认选择值设置为'NONE'?相关的知识,希望对你有一定的参考价值。
处理一个我没有启动的文件并遇到了这个代码的问题,我无法完全理解。
该页面将cookie值设置为等于页面上下拉选项中选择的秒数。然后,该选定值将以可能秒的间隔不断刷新页面。所有这些都可以正常工作,但是当首次加载文件或者没有cookie来设置秒的值时,它默认为“无”。
我想要做的是默认为15秒的值选择,而不是“无”。如果我在下面的数组中注释掉None值,它可以正常工作。然而,在某些极端情况下,某人可能必须将其设置为“无”。因此,完全关闭此功能不是一种选择。
cookie在这里创建:
function cookie_based_settings() {
global $login_id;
if (($_GET['set_refresh_time'] || !$_COOKIE["refresh_time_$login_tech_id"]) && !$norefreshcookie) {
if (!$_COOKIE["refresh_time_$login_id"]) {
$_POST['refresh_time']='NONE';
}
setcookie("refresh_time_$login_id", $_POST['refresh_time'], time()+60*60*24*365, '/', 'website.domain.com');
$_COOKIE["refresh_time_$login_id"]=$_POST['refresh_time'];
}
}
cookie_based_settings();
以下是生成表单值的大部分代码,默认为“None”。任何人都可以解释为什么选择总是选择“无”选项而不选择其他值之一?我看不出来。
<form method=POST action=the_file.php3?set_refresh_time=1 name=globe>Auto Refresh:<select name=refresh_time onchange='submit(globe);'><?
# build array of refresh times (seconds):
$refresh_times[]=15;
$refresh_times[]=30;
$refresh_times[]=45;
$refresh_times[]=60;
$refresh_times[]=120;
$refresh_times[]=180;
$refresh_times[]=240;
$refresh_times[]=300;
$refresh_times[]='NONE';
foreach ($refresh_times as $key => $value) {
if ($value==$_COOKIE["refresh_time_$login_id"]) {
$selected="selected";
} else {
$selected='';
}
printf("<option %s value=%s>%s</option>",$selected,$value,$value);
}
?></select></form>
这个html输出如下所示:
<form method="POST" action="the_file.php3?set_refresh_time=1" name="globe">Auto Refresh:
<select name="refresh_time" onchange="submit(globe);">
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
<option value="60">60</option>
<option value="120">120</option>
<option value="180">180</option>
<option value="240">240</option>
<option value="300">300</option>
<option selected="" value="NONE">NONE</option>
</select>
</form>
我意识到Option标签的“选择”添加正在执行它,默认情况下如果cookie不存在则选择它,但我不确定原因。或者如何改变这种行为。理想情况下,我只想添加一个简单的行强制静态编码的默认值:
$default_value=15;
答案
好。好吧,我是个白痴。设置$ _POST ['refresh_time'] ='无';值为'15'。工作,正是我需要的。我想再次看到新鲜的眼睛也有帮助。
以上是关于为什么这个PHP代码将初始默认选择值设置为'NONE'?的主要内容,如果未能解决你的问题,请参考以下文章
C#中ComboBox设置DrowDownStyle为DropDownList后怎么设置显示默认值?