【问题标题】:Using forms to change CSS使用表单更改 CSS
【发布时间】:2015-04-16 13:20:35
【问题描述】:

我想要做的是使用 PHP 和 AJAX 创建一个 CMS。我正在尝试创建一个可以更改整个网站的 css 的表单。

是否可以存储 php 变量或者我需要使用数据库来实现这一点?

PHP/CSS 代码

$bgcolour = $_POST['bgColour'];
?>

body {
background-color:<?php echo $bgcolour; ?>;
}

AJAX 代码

$(document).ready(function(){
$('#css').on('submit',function(e){
    $.ajax({
        url:'../css/style.php',
        data:$(css).serialize(),
        type:'POST',
        success:function(data){
            $('<style type="text/css"></style>')
             html(css)
  .         appendTo("head");
            console.log(data);
            if(data != "Error") {
               $("#data").html(data).show().fadeOut(9000);
            }
            else {
               $("#data").html(data).show().fadeOut(9000);
            }
        },
        error:function(data){
            $("#error").show().fadeOut(5000);
        }
    });
    e.preventDefault();
    document.getElementById("css").reset();
    $("#main").load(location.href + " #main");
});
});

HTML 代码

<h2>Change Website Style</h2>
<form name="css" id="css" action="">
Background Colour: <input type="text" name="bgColour" value="" />
<input type="submit" name="css" /></form>

【问题讨论】:

  • 如果您希望它在会话中结束,您需要将其存储在数据库中。您也可能不希望他们每次进行更改时都重新下载样式。你可以改变已经存在的样式。

标签: php jquery html css ajax


【解决方案1】:

这真的取决于,我同意@DanielM - 如果您希望这些设置在整个用户会话期间进行,则需要将此信息存储在数据库中。

另一种选择是使用会话超级全局$_SESSION 来存储该信息。但是,一旦用户离开您的网站 - 网站将恢复为“默认”背景颜色。

如果您要使用某种身份验证;表示用户登录,然后设置背景颜色。数据库是要走的路。这样当页面加载时,您可以编写一个 php 脚本来获取/设置他们输入的颜色。

如果您只想让匿名用户输入一种颜色并且不在乎他们离开时它会消失,那么您可以使用$_SESSION 离开。

希望这会有所帮助...

【讨论】:

  • 我已经在使用数据库,所以我会走那条路。我将如何设置从 pdo 到 css 的值?
  • 取决于我猜。您可以直接在页面上呼应样式,或者为您的背景提供一个通用类,如.bkg-color。然后,如果用户设置了一个值(选择了一种颜色),您可以让 php 将 db 中的值设置为#cccccc(例如)。然后当页面加载时,php 可以检查。如果有值,请将 .bkg-color 类分配给您的 body 元素。如果他们没有选择颜色,请不要分配班级。
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多