Как передать в css переменные, пришедшие из формы.

tenaro

Новичок
Как передать в css переменные, пришедшие из формы.

Хочу сделать скрипт, который позволяет пользователю выбрать (через форму, указать в текстовых полях) цвет фона/текста и всё остальное что прописывается в css файлах.
Перменные не приходят в $_REQUEST,

Файл с формой:
<head>
<link rel="stylesheet" type="text/css" href="default.php">
</head>

Файл стилей:
<?
header("Content-type: text/css; charset: UTF-8");
$bgmod = $_REQUEST['bgmod'];
?>

#menu {
color: <? echo $bgmod?>;
}
 

Фанат

oncle terrible
Команда форума
Не вижу формы.
и какой вообще смысл в таком выборе - до следующего клика?
 

tenaro

Новичок
там форма в несколько шагов, <input type="text" name="bgmod"><br /> вот данное поле.

это админка модуля голосования. в котором можно задать все параметры. Просто интересно можно ли это запихнуть в css файл или прийдётся там же все стили прописывать.
 

Фанат

oncle terrible
Команда форума
не вижу нескольких шагов.
вижу бессмысленные куски HTML кода, которые при всем желании никуда ничего не передадут.

Параметры -то задать можно. Вопрос - что будет с ними после того, как ползователь перейдет на следующую страницу просто по ссылке, безо всякой формы
 

tenaro

Новичок
<html>
<head>
<link rel="stylesheet" type="text/css" href="default.php" media="screen, projection">
</head>
<body>

Новое голосование:<br />
<form method="get">

<?if (isset($_REQUEST['step1'])) {
for($i=1; $i<=$_REQUEST['countof']; $i++) {?>
Название <?=$i?> пункта: <input type="text" name="nn<?=$i?>" value=""><br />
<?}?>
<hr />
Цвет текста: <input type="text" name="fontcolor" value=""><br />
Ширина модуля: <input type="text" name="widthmod"> px<br />
Фон модуля: <input type="text" name="bgmod"><br />
Цвет границ: <input type="text" name="bordercolor"> (Если пусто - без границ)<br />
<input type="hidden" name="votingname" value="<?=$_REQUEST['votingname']?>">
<input type="hidden" name="countof" value="<?=$_REQUEST['countof']?>">
<input type="submit" name="step2" value="Далее"><br />
<?} elseif (isset($_REQUEST['step2'])) {?>
<div id="menu">
<?=$_REQUEST['votingname']?><br />
<?for ($i=1; $i<=$_REQUEST['countof']; $i++) {
$ind = "nn$i";?>
<input type="radio" name="rad"> <?=$_REQUEST[$ind]?><br />
<?}?>
</div>
<?} else {?>
Тема голосования:
<input type="text" name="votingname" ><br />

Количество вариантов:
<select name="countof">
<?for ($i=1; $i<=20; $i++) {?>
<option value="<?=$i?>"><?=$i?></option>
<?}?>
</select>

<input type="submit" name="step1" value="Далее"><br />
<?}?>

</form>

</body>
</html>
 

tenaro

Новичок
она передает в текущий файл, а он подключает default.php, которому должны быть доступны все переменные..? или как подругому это реализовать?
 

Фанат

oncle terrible
Команда форума
"он" ничего не подключает. файл default.php запрашивает браузер, совершенно отдельно
 

tenaro

Новичок
получается в default.php вообще нельзя передать никакие переменные?
 

Фанат

oncle terrible
Команда форума
почему же.
можно, например, тeм же методом GET
но опять же - где будут эти значения при следующем клике?

остаются куки, наверное.
записать выбранные значения в куки, и читать в default.php из них
 

weregod

unserializer
если default.php осядет в кэш браузера, то и куки не спасут
tenaro, не тот у Вас случай, чтобы динамический css делать
 

Здыхлик

Kohaner
Команда форума
ИМХО, проще ограничить пользователя неким количеством заготовок (темы, готовые классы CSS).

CSS можно генерить "на лету", подставляя туда соответствующие значения, только тогда надо их отделять как-то друг от друга (т.е. что-то типа /media/css/style.php?h=123456789), где h - хэш или еще какой-нить идентификатор текущих настроек. Чтобы не генерировать все это постоянно, использовать кэширование. Только стоит ли этот гемор усилий?
 

tenaro

Новичок
просто было интересно как это можно реализовать, в предпросмотре вставил тег <style> со всеми выбранными параметрами, а при подтверждении все параметры модуля (включая стили) копируются в бд, а при отображении он их оттуда вытаскивает.. так кто-нибудь делает?
 
Сверху