Cakephp,在加载视图时动态地将变量写入css文件?

时间:2010-07-20 01:25:14

标签: php javascript jquery css cakephp

我正在编写一个进程来保存在cakephp中我的视图中jquery发生的操作。我想一个简单的方法来加载保存的值,例如DIV的宽度和高度,就是要有cakephp在css文件中回显一个变量作为它们的宽度/高度,就像它在视图文件中做的那样。我想我不确定在哪里查找信息,如果它在cakephp食谱我猜测我错过了它,因为我不知道如何在那里做任何建议。感谢任何建议。

2 个答案:

答案 0 :(得分:3)

这实际上非常简单(而且功能强大),并且可以在没有CakePHP的帮助下完成。

首先,在您的webroot中创建一个名为css.php的新文件。在该文件的顶部添加以下内容:

<?php header("Content-Type: text/css"); ?>

现在,链接到布局开头的这个文件,就像普通的CSS文件一样。

<link rel="stylesheet" href="/path/css.php" type="text/css" />  

你有它,一个动态的CSS文件。您可以像这样传递信息:

<link rel="stylesheet" href="/path/css.php?c=red&fw=700" type="text/css" />  

澄清:要访问上述变量,您可以在CSS文件中使用$_GET变量。看一下上面的链接标签。要在css文件中访问这些变量,您可以执行以下操作:

.class {color:<?php echo $_GET['c']; ?>;font-weight:<?php echo $_GET['fw']; ?>;}

更新:在查看您发布的有关CakePHP HTML Helper的链接后,我意识到如果您打算将大量变量传递给css文件,有更好的方法。< / p>

创建一个名为DynamicStyle和DynamicStylesController(或类似的东西)的新模型和控制器。然后,创建一个名为css.ctp的新布局文件,该控制器的所有视图都将使用该文件。在该布局文件中声明content-type header语句。

最后一步是从标准布局标题的头部链接到该控制器中的方法。

现在你可以创建一个css规则的数据库表,并在css视图中使用那些带有HTML帮助器的表。

答案 1 :(得分:2)

我刚刚意识到CakePHP也有这方面的东西:

http://book.cakephp.org/view/1440/style

因此,对于未来遇到此问题的任何人来说,这可能会派上用场。