如何创建条件PHP链接?

如何创建条件PHP链接?,php,conditional,Php,Conditional,我一直在寻找一种方法来实现这一点,但由于我对PHP不太精通,所以我尝试过的方法似乎都不管用。我对它应该如何工作有一个大致的想法,它看起来很简单,但我不能让它按照我想要的方式工作 基本上,我的网站上有两个链接——每个链接指向不同的样式表,这是JS样式切换程序的一部分。样式切换程序工作正常,除了一件事——我希望链接是有条件的。例如,现在,我的链接如下所示: 使其变暗(备用样式表) 点亮它(主样式表) 他们两人同时出现 我希望它是这样工作的:当页面加载时,只有“使其变暗”链接显示。然后,当它处于“

我一直在寻找一种方法来实现这一点,但由于我对PHP不太精通,所以我尝试过的方法似乎都不管用。我对它应该如何工作有一个大致的想法,它看起来很简单,但我不能让它按照我想要的方式工作

基本上,我的网站上有两个链接——每个链接指向不同的样式表,这是JS样式切换程序的一部分。样式切换程序工作正常,除了一件事——我希望链接是有条件的。例如,现在,我的链接如下所示:

  • 使其变暗(备用样式表)
  • 点亮它(主样式表)
他们两人同时出现

我希望它是这样工作的:当页面加载时,只有“使其变暗”链接显示。然后,当它处于“使其变暗”状态时,只显示到主样式表的链接

这可以在右上角的最后一个.fm页面上看到:

这里有两个主题:“把它涂成黑色”和“仅仅是红色”。一次只显示一个链接,以便您可以在它们之间切换。我怎么能做到呢


我很感激你能帮我做这件事。谢谢。

如果在您的每个样式表中都提供了一个链接,它会工作吗?

如果在每个样式表中都提供了一个链接,它会工作吗
显示:无?

您可以在两个样式表上都指定一个类,然后在相反的样式表中添加一个显示:无,以便为用户隐藏它。所以你有:

<a href="" class="darken">Make it dark</a>
<a href="" class="lighten">Light it up</a>
在光明的一面:

.darken { display: none; }

您可以在两个样式表上都指定一个类,然后在另一个样式表中添加display:none来为用户隐藏它。所以你有:

<a href="" class="darken">Make it dark</a>
<a href="" class="lighten">Light it up</a>
在光明的一面:

.darken { display: none; }
if($\u COOKIES['dark\u theme'])){
$show_dark=true;
}否则{
$show_dark=false;
}
如果($show_dark){
echo“
if($\u COOKIES['dark\u theme'])){
$show_dark=true;
}否则{
$show_dark=false;
}
如果($show_dark){

echo“或者您可以在一行中告诉php这样做,当用户切换到另一个样式表时,您只需根据需要在cookie名称下面更改cookie即可

echo (isset($_COOKIE['dark_theme'])) ? '<link rel="stylesheet" href="/css/dark.css">' : '<link rel="stylesheet" href="/css/light.css">';
echo(isset($\u COOKIE['dark\u theme']))?“”;

或者您可以在一行中告诉php这样做,您只需要在用户切换到另一个样式表时设置cookie,并根据需要在cookie名称下面更改

echo (isset($_COOKIE['dark_theme'])) ? '<link rel="stylesheet" href="/css/dark.css">' : '<link rel="stylesheet" href="/css/light.css">';
echo(isset($\u COOKIE['dark\u theme']))?“”;

我个人会使用会话变量,而不是cookie

像这样的方法应该会奏效:

<?php
session_start(); // add to the top of your page
if (!isset($_SESSION['dark_theme'])) {
  $_SESSION['dark_theme']==false;
}

if ($_GET['changetheme']!='') {
  if ($_GET['changetheme']=='dark') {
    $_SESSION['dark_theme']=true;
  } else {
    $_SESSION['dark_theme']=false;
  }
}
?>
在“light”样式表中:

#darken {
  display:none;
}
#lighten {
  display:none;
}
JavaScript(注意,我使用的是JQuery,因为它比普通的JS更容易编写-只是如果站点上还没有JQuery,您需要包括它):


就个人而言,我会使用会话变量,而不是cookie

像这样的方法应该会奏效:

<?php
session_start(); // add to the top of your page
if (!isset($_SESSION['dark_theme'])) {
  $_SESSION['dark_theme']==false;
}

if ($_GET['changetheme']!='') {
  if ($_GET['changetheme']=='dark') {
    $_SESSION['dark_theme']=true;
  } else {
    $_SESSION['dark_theme']=false;
  }
}
?>
在“light”样式表中:

#darken {
  display:none;
}
#lighten {
  display:none;
}
JavaScript(注意,我使用的是JQuery,因为它比普通的JS更容易编写-只是如果站点上还没有JQuery,您需要包括它):


这绝对是最优雅的解决方案。这绝对是最优雅的解决方案。嗨,谢谢你。我决定使用PHP而不是CSS,因为我想在重新加载页面时维护所选的样式表。唯一的问题是,这个PHP示例似乎无法正常工作……而且我不知道足够的PHP来解决问题问题。.[在这段代码中,“make it dark”链接没有显示,并且有点弄乱了顶部的css头代码。很抱歉,代码中有轻微错误(在尝试设置会话变量时将=号加倍)。我已经编辑了上面的代码,现在应该可以正常工作了。如果不给我一个链接,我将非常乐意提供帮助。我也只是整理了一下代码,对不起,我最初写这篇文章时一定很匆忙。嗨,非常感谢你的帮助。链接现在可以正常工作了,除了样式表转换器使用javascript。所以inside更改样式表的链接的href为“javascript:chooseStyle('none',60)”。我该如何将其整合到PHP代码中?还有…有没有办法修复PHP代码中链接的格式?因为现在,PHP代码中的链接隐藏在我的徽标下面,出于某种原因,它会弄乱我的css标题,因为我认为放在顶部的PHP代码会在不应有的地方留下巨大的空间成为一个。你可以在页面上的任何地方移动链接-只需要从这一位开始到结尾的代码块:if(!$\u SESSION['dark\u theme']){将if/else语句放在你想要链接的任何地方。你也可以根据需要更改HTML(例如,在其上放置id或类以设置样式)。至于JavaScript,您需要添加更多的内容来更改样式表,使用JS时,您最好使用CSS来隐藏/显示正确的链接,而不是PHP。您好,谢谢。我决定使用PHP而不是CSS,因为我想在重新加载页面时维护所选的样式表。唯一的问题是,这个php示例似乎工作不正常……而且我对php的了解还不够,无法解决这个问题。【在这段代码中,“make it dark”链接没有显示,并且有点搞乱了顶部的css头代码。很抱歉,代码中有一些小错误(在尝试设置会话变量时将=号加倍)。我已经编辑了上面的代码,现在应该可以正常工作了。如果不给我一个链接,我将非常乐意提供帮助。我也只是整理了一下代码,对不起,我最初写这篇文章时一定很匆忙。嗨,非常感谢你的帮助。链接现在可以正常工作了,除了样式表转换器使用javascript。所以inside更改样式表的链接的href为“javascript:chooseStyle('none',60)”。我该如何将其整合到PHP代码中?还有…有没有办法修复PHP代码中链接的格式?因为现在,PHP代码中的链接隐藏在我的徽标下面,出于某种原因,它会干扰我的css标题,因为