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

  • Автор темы Автор темы tenaro
  • Дата начала Дата начала

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?>;
}
 
Не вижу формы.
и какой вообще смысл в таком выборе - до следующего клика?
 
там форма в несколько шагов, <input type="text" name="bgmod"><br /> вот данное поле.

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

Параметры -то задать можно. Вопрос - что будет с ними после того, как ползователь перейдет на следующую страницу просто по ссылке, безо всякой формы
 
<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>
 
она передает в текущий файл, а он подключает default.php, которому должны быть доступны все переменные..? или как подругому это реализовать?
 
"он" ничего не подключает. файл default.php запрашивает браузер, совершенно отдельно
 
получается в default.php вообще нельзя передать никакие переменные?
 
почему же.
можно, например, тeм же методом GET
но опять же - где будут эти значения при следующем клике?

остаются куки, наверное.
записать выбранные значения в куки, и читать в default.php из них
 
если default.php осядет в кэш браузера, то и куки не спасут
tenaro, не тот у Вас случай, чтобы динамический css делать
 
ИМХО, проще ограничить пользователя неким количеством заготовок (темы, готовые классы CSS).

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