PHP表单提交,强制CSS重新加载?

时间:2011-01-29 00:29:17

标签: php css

我有一个PHP表单,我需要在提交后强制重新加载CSS。我该怎么做?

谢谢!

3 个答案:

答案 0 :(得分:3)

我能想到保证CSS重新加载的唯一方法是更改​​css文件的名称。

你可以创建一个重写规则,将“... mycssfile.css1234”类型的所有地址重定向到“... mycssfile.css”,并在你的php中,在你的css文件位置的末尾添加一个随机的4位数字。

编辑:要反映对此答案的评论,您可以执行以下操作:

<link rel="STYLESHEET" href="mycssfile.css?r=<?php echo rand(1, 999999); ?>" type="text/css">

哪会强制浏览器更新css页面,因为css文件的地址发生了变化,尽管它实际上会链接到同一个css文件。

答案 1 :(得分:1)

你可以通过Javascript。

<form id="form" onsubmit="cssChange()" action=".....

例如cssChange函数:

     function cssChange() {

         var a = document.getElementsByTagName('link');
         var random = Math.floor(Math.random()*11);
         if(a.getAttribute('rel') == 'css')
             {
                    a.attr('src', 'new-css.css?' + random);
             }

     }

您可以在css文件中定义 .newClass 类。

答案 2 :(得分:0)

是否有某些原因导致整页无法重置?因为如果没关系,那么表单可以只提交到页面本身,action get,并且(下拉|输入|单选按钮)作为参数提交(类似“css”) )。

当页面加载时,PHP可以检查变量:

$css = empty($_GET['css']) ? $_GET['css'] : 'default';

然后,它可以根据该变量回显样式表的href

<link href="<?php echo htmlspecialchars($css, ENT_QUOTES, 'UTF-8') ?>.css" ... />