【问题标题】:Creating a PHP switch that switched the stylesheet创建一个切换样式表的 PHP 开关
【发布时间】:2015-10-17 13:00:01
【问题描述】:

我必须在网站上制作一个按钮来切换样式表(来回)。我已经知道该按钮正在工作,但是如果我在主页的另一个页面上并单击该按钮,它会切换回我的主页:(

我真的不能为这个提供一个 jsfiddle,所以我希望它像这样清晰。

这里是 PHP

<?php
if ($kiescss==1) 
{
    echo "<a href=.?sheet=2>switch</a>";
}
else if ($kiescss==2)
{
    echo "<a href=.?sheet=1>switch</a>";
}
?>

“kiescss”来自另一个 PHP 文件,其中包括:

if (empty($_GET['sheet']))
$kiescss=1;
else
$kiescss = $_GET['sheet'];

if (!filter_var($kiescss, FILTER_VALIDATE_INT) || $kiescss > 2 || $kiescss < 1)
$kiescss=1;

【问题讨论】:

  • 哦,它没有添加我最后的代码:
  • 您必须在该链接中包含当前脚本名称。
  • $kiescss 来自哪里?输入变量不会神奇地出现在您的脚本中;除非你正在使用一些......非常老派的技巧。为什么不使用实际的switch 语句?它是为这样的事情而制作的。您确定.? 指向正确的路径吗?使用绝对路径可以减少它指向的位置。您还应该考虑引用 href 值。这不是绝对必要的,只要 URL 中没有特殊字符,但它很可能会在某些时候引起问题。
  • $Kiescss 来自我写的另一个脚本: 2 || $kiescss 我真的不明白如何“包含当前script" :( 我从没用过 PHP,也没有听说过 switch 语句
  • 我们真的需要看到更多你的代码。不过,很高兴看到您使用的是filter_var。这是个好习惯。

标签: php html css switch-statement


【解决方案1】:

是的,为了使您的链接正常工作,您应该更改链接的 url。您应该在 href 属性中回显您的路径,以便链接始终指向您所在的页面。

【讨论】:

  • 你能举个例子吗?我真的对php一无所知。我在我的PHP中看不到URL。我应该添加一个吗?
  • 您可以使用 PHP 全局变量 $_SERVER['REQUEST_URI'] 来获取当前路径。而且您需要更改“switch”,以便您的链接始终指向用户正在访问的当前页面。
【解决方案2】:

每个页面都应该包含切换脚本。

anypage.php

if (isset($_GET['sheet'])) {
  $sheet = $_GET['sheet'];
} else {
  $sheet = 1 // default
}

include 'header.php'
[...]

// Switch button
if ($sheet == 1) {
  echo "<a href='?sheet=2'>Switch</a>"
} else {
  echo "<a href='?sheet=1'>Switch</a>";

header.php

if ($sheet == 2) {
  echo "<link rel='stylesheet' type='text/css' href=..."
} else {
  echo "<link rel='stylesheet' type='text/css' href=..." // default
}

【讨论】:

  • 谢谢!我想我修好了。
猜你喜欢
  • 1970-01-01
  • 2020-12-01
  • 2018-11-04
  • 1970-01-01
  • 2023-03-16
  • 2021-12-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多