php - 在不刷新页面的情况下单击链接运行 PHP 脚本

标签 php javascript jquery styleswitching

好的,所以我在 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/

相关文章:

php - 使用 PHP 和 MySQL 的个人资料页面

php - 从从另一个站点获取数据的站点获取信息

javascript - 具有正值和负值的 d3.js 直方图

javascript - 选择框更改 css 类

javascript - HTML5 范围 - 不支持的伪 : range

javascript - PUT Ajax 请求

javascript - 数据表上的范围日期搜索 (CodeIgniter)

php - 如何将带有ClientId的Google Analytics(分析)跟踪代码导入PHP页脚?

javascript - 有没有办法将 AWS Athena 查询编程为每 15 分钟运行一次?

javascript - 如何使 $(this) 选择器聚焦于当前元素?