【发布时间】:2010-11-26 04:04:39
【问题描述】:
我有一个下拉列表,用户可以在其中选择网站的主题。唯一的问题是,一旦他们按下“应用”,我不太确定如何正确加载主题。我是 PHP 新手。我知道如果我使用 GET,它将通过当前页面传递变量并将它们添加到 URL 的末尾。我真的很想避免这种情况。所以,我想我的问题是,我怎样才能避免使用 GET 来更新主题?谢谢。
这是我加载正确主题的代码:
<?php
$stylesArr = array('Default', 'Black', 'Pink', 'Green', 'Red');
if(isset($_GET['theme']) && in_array($_GET['theme'], $stylesArr)) {
$style = $_GET['theme'];
setcookie("theme", $style, time()+(60*60*24*30));
} else {
if(isset($_COOKIE['theme']) && in_array($_COOKIE['theme'], $stylesArr)) {
$style = 'CSS/' . $_COOKIE['theme'] . '.css';
} else {
$style = 'CSS/Default.css';
}
}
?>
这是我选择主题的下拉列表:
<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post">
<p>Site Theme:
<select name="theme">
<option value="Default">Default</option>
<option value="Black">Black</option>
<option value="Pink">Pink</option>
<option value="Green">Green</option>
<option value="Red">Red</option>
</select>
<input type="submit" value="Apply" />
</form>
【问题讨论】:
标签: php css forms drop-down-menu cookies