Сохранение цвета текста в Cookie

320
04 января 2017, 04:43

Подскажите как можно улучшить данный код с сохранением его логики.

<?php
if (isset($_POST['submit'])){
   if (!empty($_POST['color'])){
 setcookie('color', $_POST['color']); 
    $_COOKIE['color'] = $_POST['color'];
  }
}
$color = isset($_COOKIE['color']) ? $_COOKIE['color'] : 'red';
?>
<form method="post" action="">
<p>
<select size="5" name="color">
<label>Выберите цвет:</label>
<option value="red" <?php if ($_COOKIE['color']=='red') echo 'selected="selected"'?>>Красный</option>
<option value="blue" <?php if ($_COOKIE['color']=='blue') echo 'selected="selected"'?>>Синий</option>
<option value="yellow" <?php if ($_COOKIE['color']=='yellow') echo 'selected="selected"'?>>Жёлтый</option>
<option value="brown" <?php if ($_COOKIE['color']=='brown') echo 'selected="selected"'?>>Коричневый</option>
<option value="green" <?php if ($_COOKIE['color']=='green') echo 'selected="selected"'?>>Зелёный</option>
</select>
</p>
<p><input type="submit" name="submit" value="Применить"></p>
</form>
<div>
<font color="<?php echo $color?>">
"Lorem ipsum dolor sit amet, consectetur adipiscing elit.. 
</font>

При выборе и сабмите цвета, данный цвет применяется к тексту и делает option selected. Но как можно более красиво сделать с блоками option value..?

Answer 1
  • Цвета храним в массиве.
  • Опции отображаем через цикл.
  • Если ключ совпадает, то делаем selected

это массив в php

$colors = [ 'red' => 'Красный',
            'green' => 'Зеленый',
            'blue' => 'Синий'
];

это вывод

<select size="5" name="color">
    <?php foreach ($colors as $k => $v): ?>
    <option value="<?= $k; ?>" <?php echo ($_COOKIE['color'] == $k) ? 'selected="selected"' : '' ?>><?= $v; ?></option> 
    <?php endforeach; ?>
</select>
READ ALSO
В базе данных появились символы r/n

В базе данных появились символы r/n

после экспорта и импорта таблицы , в столбце postText появились знаки r/n ,как убрать ?

480
Мультизагрузка изображений из фронтенд modx revo

Мультизагрузка изображений из фронтенд modx revo

Сделал мультизагрузку изображений по этому уроку мультизагрузка

542
Абстрактное синтаксическое дерево

Абстрактное синтаксическое дерево

Необходимо по исходному коду на Hack построить синтаксическое деревоМожет быть, уже есть готовые библиотеки или программы? Если нет, то как...

514
Blob video url download

Blob video url download

Помогите! мне надо скачать видео одного сайта, не как не смогу кто может помочь меня очень нужен src="blob:http://galentam/40892662-deda-4ed6-91bf-aae10cf50fb4"

10006