好的,所以我在 php 中做了一个样式切换器,我将它用作我网站上的隐藏功能,当用户键入“teema”时触发,并且模式框将出现在顶部页面内容和显示可用的主题。
<ul>
<li><a href="teema.php?teema=default" class="ajaxLink">Normaali</a></li>
<li><a href="teema.php?teema=superhero" class="ajaxLink">Superhero</a></li>
<li><a href="teema.php?teema=spacelab" class="ajaxLink">Spacelab</a></li>
<li><a href="teema.php?teema=united" class="ajaxLink">United</a></li>
<li><a href="teema.php?teema=cyborg" class="ajaxLink">Cyborg</a></li>
</ul>
但是,我想在不刷新页面的情况下更改主题,因此 css 应该在后台加载。这是 teema.php:
<?php
$style = $_GET['teema'];
setcookie("teema", $style, time()+604800);
if(isset($_GET['js'])) {
echo $style;
}
else{
header("Location: ".$_SERVER['HTTP_REFERER']);
}
?>
以及检查 cookie 的索引上的 php:
<?php
if(!empty($_COOKIE['teema'])) $style = $_COOKIE['teema'];
else $style = 'default';
?>
<link rel="stylesheet" href="css/<? echo $style;?>.css" id="theme">
我如何在后台加载新的 css,然后使用 jQuery 将其淡入旧的 css?
最佳答案
你可以简单地发出一个ajax请求,这样cookie就会被返回
使用 jQuery:
$('.ajaxLink').click(function(e) {
e.preventDefault();
var teemaUrl=this.href;
var teema=teemaUrl.split('=').pop()
$.get(teemaUrl, { js:true}, function(data){
$('#theme').attr('href','css/'+ teema+'.css')
})
});
这将解析 teema
来自链接的值 href
, 调用那个 href
(可能需要添加路径信息)并更新 href
ID=theme 的链接标签
关于php - 在不刷新页面的情况下单击链接运行 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333198/