ОСНОВНАЯ ПРОБЛЕМА
Я хотел бы изменить некоторые параметры сеанса (которые учитываются для отображения или не какой-либо части моей страницы) , нажав на кнопку, но все же отобразив ту же страницу. как я могу это достичь?
Exemple
Я хочу, чтобы пользователь изменил цвет фона страницы. (цвет фона сохраняется в сеансе ("backgroundcolor").
Как я могу сделать так, чтобы при щелчке пользователем по "Зеленой фоновому цвету" сеанс получил новое значение, и текущая страница (страница, на которой был пользователь, когда он нажал на кнопку) перезагружается.
(кнопка находится в главной компоновке, поэтому ее можно щелкнуть по всей странице сайта, которая, конечно же, имеет все разные маршруты)
ДЛЯ ИНФО
Я использую symfony2. Я не хочу делать это с помощью javascript/jquery, потому что это пример, и когда-то другое изменение значения сеанса пользователем вызывает запрос BD.
здесь адаптация для Symfony (адаптированная из кода Tyranicangel, которая не была адаптирована к Symfony):
Я использовал форму и отправил на ту же страницу (action = "" в форме)
$session = $this->getRequest()->getSession(); // access to session
if(isset($_POST['backgroundcolor']))
{
$session->set('backgroundcolor',$_POST['backgroundcolor']);
}
Сообщение на ту же страницу и изменение переменной сеанса
<?php
if(isset($_POST['change_color']))
{
session_start();
$_SESSION['backgroundcolor']=$_POST['change_color'];
}
//continue with your code
?>
При нажатии кнопки отправьте запрос на эту же страницу.