为什么这个PHP代码将初始默认选择值设置为'NONE'?

问题描述 投票:-1回答:1

处理一个我没有启动的文件并遇到了这个代码的问题,我无法完全理解。

该页面将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;
php cookies refresh default option
1个回答
0
投票

好。好吧,我是个白痴。设置$ _POST ['refresh_time'] ='无';值为'15'。工作,正是我需要的。我想再次看到新鲜的眼睛也有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.