|
|
|
| В универе задание, нужно сделать сайтик из 5ти страниц с 6тью стилями CSS. Помогите разобраться, как можно изменить стиль текущей странички(или всех) при помощи РНР??? | |
|
|
|
|
|
|
|
для: Katriona
(12.12.2005 в 22:36)
| | При помощи include()
Делаете пустую страницу html, совершенно пустую, содержащую одну единственную строку:
<link href="styles/style1.css" rel="stylesheet" type="text/css" />
|
Это для первого стиля.
Так повторяете для дополнительных стилей.
В результате у вас несколько страниц с единственной строкой(см. выше).
На странице php, между тегами <head> </head>, вставляете ваш include.
<head><?php include($style);?></head>
|
Переменная $style будет содержать адрес вашей страницы со стилем.
Может примитивно, но спешу, мыслить нет времени. | |
|
|
|
|
|
|
|
для: codexomega
(12.12.2005 в 23:07)
| | Переборщил с инклюдом.
Надо просто вместо include() вставить echo $style;
Содержимое переменной меняется взависимости от кликнутой ссылки. | |
|
|
|
|
|
|
|
для: codexomega
(12.12.2005 в 23:50)
| | а на кнопки стиль1 - стиль6 какую команду написать? | |
|
|
|
|
|
|
|
для: Katriona
(13.12.2005 в 00:18)
| | Кнопки - это ссылка с параметром.
Можно так:
<input type="button" name="btn1" value="Style1" onClick="openStyle(this.value)">
<input type="button" name="btn2" value="Style2" onClick="openStyle(this.value)">
.
.
.
|
И обработчик Javascript:
<script language="javascript">
function openStyle(style){
document.location="my_page.php?style=" + style;
}
</script>
|
В окне которое открывается с этим скриптом, ловим переменную из адресной строки путем GET. | |
|
|
|
|
|
|
|
для: codexomega
(13.12.2005 в 06:09)
| | блин
у меня фреймы(знаю, что многие их терпеть не могут, но их наличие - обязательное требование по проекту)
так вот, при нажатии кнопок страница загружается во фрейме с МЕНЮ, а не в основном(frame1)
target="frame1" не помогает | |
|
|
|
|
|
|
|
для: Katriona
(27.12.2005 в 19:41)
| | | |
|
|
|
|
|
|
|
для: codexomega
(27.12.2005 в 21:06)
| | издеваетесь, да?
какая разница как фрейм называется....
все равно вместо меню ссылочная страница загружается | |
|
|
|
|
 1.5 Кб |
|
|
для: Katriona
(28.12.2005 в 20:56)
| | Надеюсь это поможет. Смотрите зип. | |
|
|
|
|
|
|
|
для: codexomega
(28.12.2005 в 22:01)
| | не увидела ничего нового... | |
|
|
|
|
|
|
|
для: Katriona
(28.12.2005 в 23:19)
| | У вас кнопки во фрейме c меню, так?
При нажатии на кнопки в меню, должна открываться страница по ссылке, в главном фрейме, тогда как все остальное не должно меняться так?
Или я ничего не понял? | |
|
|
|
|
|
|
|
для: codexomega
(28.12.2005 в 23:38)
| | Всё правильно.
Только таргет ничего не меняет, страница по прежнему загружается вместо меню.
<input type="button" name="btn1" value="Style1" onClick="openStyle(this.value)"
target="mainFrame">
|
| |
|
|
|
|
|
|
|
для: Katriona
(29.12.2005 в 19:39)
| | Ок, понял.
Не знал каким способом вы ссылку открываете.
Посмотрим... | |
|
|
|
|
|
|
|
для: codexomega
(29.12.2005 в 19:43)
| | Все. Теперь работает.
Это ваша страница с меню.
Когда жмете кнопку Style1, ссылка открывается в главном фрейме.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript">
function openStyle(style){
parent.frames["mainFrame"].document.location="http://www.google.com?style=" + style;
}
</script>
</head>
<body>
<a href="index.htm" target="_top">Home</a><br>
<input type="button" name="btn1" value="Style1" onClick="openStyle(this.value)" /><br>
<a href="http://www.rambler.ru" target="_blank">Rambler</a>
</body>
</html>
|
Изменения:
<script language="javascript">
function openStyle(style){
parent.frames["mainFrame"].document.location="http://www.google.com?style=" + style;
}
</script>
|
<input type="button" name="btn1" value="Style1" onClick="openStyle(this.value)" />
|
| |
|
|
|
|
|
|
|
для: codexomega
(29.12.2005 в 19:59)
| | Спасибо большое, работает.
Может еще подскажете?(если не трудно :))
так как у меня несколько страниц, нужно изменять стиль текущей страницы.
Из-за наличия фреймов адрессная строка всегда одна и та же. методом гет вроде не достать.
Предполагаю, нужно изменить функцию примерно так
<script language="javascript">
function openStyle(style,page){
parent.frames["mainFrame"].document.location =page+"?style=" + style;
}
</script>
|
правильно?
тогда
<input type="button" name="btn1" value="Style1"
onClick="openStyle(this.value, page)">
|
Переменной page нужно присваивать стринговое значение. Делать это можно во время нажатия на кнопку раздела(пр. Главная, Обо мне, Галерея итд).
Как это выглядит в коде? | |
|
|
|
|
|
|
|
для: Katriona
(29.12.2005 в 20:05)
| | Да...
Есть вариант получше.
Примерно так:
Когда нажимаете на кнопку со стилем, срабатывает функция JavaScript, которая ставит значение стиля(value кнопки) в скрытое поле(input type = "hidden").Переменная ловится POST'oм ...
function openStyle(style){
parent.frames["mainFrame"].document.form1.hidden_style.value=style;
parent.frames["mainFrame"].document.location="http://www.google.com";
}
|
| |
|
|
|
|
|
|
|
для: codexomega
(29.12.2005 в 20:45)
| | Кстати, стиль меняется только для главного фрейма, или для всех сразу?
to: Akira & Devastator!
Решение бы лучше выложили.
У меня уже короткое замыкание от этих фреймов. | |
|
|
|
|
|
|
|
для: codexomega
(29.12.2005 в 21:46)
| | Заставил эту собаку наконец работать.
Вот готовое решение, доделаете потом:
Фрейм с Меню:
<?php
session_start();
?>
<?php
if(isset($_POST['hidden_style']))
$_SESSION['php_style'] = $_POST['hidden_style'];
else
$_SESSION['php_style'] = "";
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="<?php echo $_SESSION['php_style']; ?>.css" rel="stylesheet" type="text/css" />
<script language="javascript">
function openStyle(style){
document.form1.hidden_style.value=style;
parent.frames["mainFrame"].document.location="content2.php";
document.form1.submit();
}
</script>
</head>
<body>
<form id="form1" name="form1" action="menu.php" method="post">
<input type="text" name="hidden_style" value="<?php echo $_SESSION['php_style']; ?>" />
<a href="index.php" target="_top">Home</a><br>
<input type="button" name="btn1" value="Style1" onClick="openStyle(this.value)" /><br>
<a href="http://www.rambler.ru" target="_blank">Rambler</a>
</form>
</body>
</html>
|
Фрейм с Контентом:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="<?php echo $_SESSION['php_style']; ?>.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>CONTENT</h1>
<form id="form1" name="form1" action="content.php" method="post">
<input type="text" name="hidden_style" value="<?php echo $_SESSION['php_style']; ?>" />
</form>
</body>
</html>
|
Короче здесь добавились сессии.
На всякий случай, креплю архив.
Удачи! | |
|
|
|
|
|
|
|
для: Katriona
(12.12.2005 в 22:36)
| | Какой хороший универ :)) | |
|
|
|
|
|
|
|
для: AKiRA
(13.12.2005 в 08:32)
| | AKiRA, эт точно...=) | |
|
|
|