powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Общий фон страницы
7 сообщений из 7, страница 1 из 1
Общий фон страницы
    #38807191
Nniicckk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица с 3 полями: фамилия, имя, дата рождения... Можно выбрать общий фон страницы, и здесь проблемка... В include ("fon1.html") и других всё банально (цвет фона: жёлтый, серый, оранжевый, зелёный). К примеру, <html> <body bgcolor="gray"></body> </html>
Когда выбрал цвет фона, допустим жёлтый, а затем кликаю на поле Surnameup или Surnamedown, то фон снова становится белым. Как исправить это? Нужно если выбрал фон, то с ним и работать... Хотя if (isset($_GET['of'])) написано же...

<b>Выберите общий фон страницы</b><br><br>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<select name="of">
<option value="0" selected>Не выбран</option>
<option value="1">Жёлтый</option>
<option value="2">Серый</option>
<option value="3">Оранжевый</option>
<option value="4">Зелёный</option>
</select>
<input type="submit" value="Выбрать">
</form>


<?php

if (isset($_GET['of'])) {
$of = $_GET['of'];
if ($of == '1') include ("fon0.html");
elseif ($of == '2') include ("fon1.html");
elseif ($of == '3') include ("fon2.html");
elseif ($of == '4') include ("fon3.html");
elseif ($of == '0') echo '';
else echo 'Мы не смогли определить общий фон';
}


$Mass = array(
array('Surname' => 'Ив', 'Name' => 'Иван', 'Birthday' => '1966.01.01'),
array('Surname' => 'Хр', 'Name' => 'Денис', 'Birthday' => '1968.02.02'),
array('Surname' => 'Ша', 'Name' => 'Николай', 'Birthday' => '1975.03.03'),
array('Surname' => 'Че', 'Name' => 'Егор', 'Birthday' => '1976.04.04'),
array('Surname' => 'Пр', 'Name' => 'Евгений', 'Birthday' => '1962.05.05'),
array('Surname' => 'Ар', 'Name' => 'Илья', 'Birthday' => '1960.06.06'),
array('Surname' => 'Пу', 'Name' => 'Александр', 'Birthday' => '1999.07.07'),
array('Surname' => 'Ма', 'Name' => 'Антон', 'Birthday' => '1988.08.08'),
array('Surname' => 'Жд', 'Name' => 'Александр', 'Birthday' => '1980.09.09'),
array('Surname' => 'Ше', 'Name' => 'Виталий', 'Birthday' => '1990.10.10')
);


# Шапка таблицы
echo '
<table border=1>
<tr>
<td><a href="?sort=Surname&sort=ascsurname">Surnameup</a> <a href="?sort=Surname&sort=descsurname">Surnamedown</a></td>
<td><a href="?sort=Name&sort=ascname">Nameup</a> <a href="?sort=Name&sort=descname">Namedown</a></td>
<td><a href="?sort=Birthday&sort=ascbirthday">Birthdayup</a> <a href="?sort=Birthday&sort=descbirthday">Birthdaydown</a></td>
</tr>
';


switch ($_GET['sort'])
{
case "ascsurname":
usort($Mass, "compare1");
break 1;
case "descsurname":
usort($Mass, "compare2");
break 1;

case "ascname":
usort($Mass, "compare3");
break 1;
case "descname":
usort($Mass, "compare4");
break 1;

case "ascbirthday":
{usort($Mass, "compare5");};
break;
case "descbirthday":
{usort($Mass, "compare6");};
break;
}


#функции сортировки по возрастанию и убыванию
function compare1 ($v1, $v2) { #asc
if ($v1["Surname"] == $v2["Surname"]) return 0;
return ($v1["Surname"] < $v2["Surname"])? -1: 1;
}

function compare2 ($v1, $v2) { #desc
if ($v1["Surname"] == $v2["Surname"]) return 0;
return ($v1["Surname"] < $v2["Surname"])? 1: -1;
}


function compare3 ($v1, $v2) {
if ($v1["Name"] == $v2["Name"]) return 0;
return ($v1["Name"] < $v2["Name"])? -1: 1;
}

function compare4 ($v1, $v2) {
if ($v1["Name"] == $v2["Name"]) return 0;
return ($v1["Name"] < $v2["Name"])? 1: -1;
}


function compare5 ($v1, $v2) {
if ($v1["Birthday"] == $v2["Birthday"]) return 0;
return ($v1["Birthday"] < $v2["Birthday"])? -1: 1;
}

function compare6 ($v1, $v2) {
if ($v1["Birthday"] == $v2["Birthday"]) return 0;
return ($v1["Birthday"] < $v2["Birthday"])? 1: -1;
}



#Вывод списка группы в таблицу
for ($i=0; $i<count($Mass); $i++)
{
echo '<tr>';
echo "<td>". $Mass[$i]['Surname'] . "</td>";
echo "<td>". $Mass[$i]['Name'] . "</td>";
echo "<td>". $Mass[$i]['Birthday'] . "</td>";
echo '</tr>';
}

echo '</table>';

?>
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807227
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, на сервере что-то делается с принимаемыми от клиента данными о выбранном цвете? Нет? Тады цвет фона (или имя стиля для body) записать яваскриптом в куку. Оттуда же и читать при загрузке страницы. Отправку формы на сервер выкинуть, оставив всю эту байду на клиенте.
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807235
Nniicckk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В строке <a href="?sort=Surname&sort=ascsurname"> надо добавить of= как-то.
Ведь, если в строке браузера явно изменяю это http://localhost./index.php?sort=Surname&sort=ascsurname (только сортировка) на это
http://localhost./index.php?sort=Surname&sort=ascsurname&of=3 (сортировка, а затем кликаю на фон), то цвет фона меняется

как и в этих случаях:
http://localhost./index.php?sort=Surname&sort=ascsurname&of=0 (только добавил &of=0)
http://localhost./index.php?sort=Surname&sort=ascsurname&of=1 (только добавил &of=1)
http://localhost./index.php?sort=Surname&sort=ascsurname&of=2 (только добавил &of=2)
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807290
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NniicckkВ строке <a href="?sort=Surname&sort=ascsurname"> надо добавить of= как-то.Как вариант, можно и так. Есть "несомненный" плюс в этом - один пользователь может передать (скопипастить) ссылку другому пользователю и таким образом передаст так же информацию о цвете. Оно вообще надо? Если надо - так и делайте. Если не надо - упрощайте. Сейчас у Вас уже три параметра в ссылке. А сколько этих ссылок на странице? И ведь каждую надо сформировать. Добавьте еще несколько таких же несущественных параметров (размер шрифта, толщину рамок и т.п.), увеличьте в несколько раз количество ссылок - и получите головную боль.

Хотите продолжать? Более-менее простой вариант без существенной переделки кода выглядит примерно так
Код: php
1.
2.
3.
4.
5.
6.
7.
// в начале кода
<?php
$of = isset($_GET['of']) ? $_GET['of'] : '0';
?>
.....
// при формировании ссылок
<a href="?sort=Surname&sort=ascsurname&of=<?php echo $of; ?>">Surnameup</a>
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807473
Nniicckk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изменил скрипт, в итоге в адресной строке, при нажатии на цвет фона, написано:
http://localhost./index.php?of=1 (для жёлтого)
http://localhost./index.php?of=2 (для серого)
...

Выбрал жёлтый фон и кликаю на Surnameup (сортировку по возрастанию), получается следующее - http://localhost./index.php?sort=Surname&sort=ascsurname&of=<?php echo $of; ?>
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807483
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах вон оно как... не обратил внимания сразу

Тады так

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
echo <<<HTML
<table border="1">
<tr>
<td><a href="?sort=Surname&sort=ascsurname&of={$of}">Surnameup</a> <a href="?sort=Surname&sort=descsurname&of={$of}">Surnamedown</a></td>
<td><a href="?sort=Name&sort=ascname&of={$of}">Nameup</a> <a href="?sort=Name&sort=descname&of={$of}">Namedown</a></td>
<td><a href="?sort=Birthday&sort=ascbirthday&of={$of}">Birthdayup</a> <a href="?sort=Birthday&sort=descbirthday&of={$of}">Birthdaydown</a></td>
</tr>
HTML;



PS: Может, пора уже почитать учебник по основам PHP? ;-)
...
Рейтинг: 0 / 0
Общий фон страницы
    #38807494
Nniicckk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<< , после которого идет идентификатор. Заканчивается строка этим же идентификатором... Спасибо)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Общий фон страницы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]