处理我没有启动的文件并遇到此代码的问题,我无法完全理解。
页面设置的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;
答案 0 :(得分:0)
确定。好吧,我是个白痴。设置$ _POST [&#39; refresh_time&#39;] =&#39; NONE&#39 ;;价值为&#39; 15&#39;工作,正是我需要的。我觉得再次看到新眼睛也有帮助。