我想重新加载同一页面(当前页面)但使用不同的会话参数

I want to reload same page (current page) but with different session parameters

主要问题
我想更改一些会话参数(考虑到显示或不显示我页面的某些部分)通过单击按钮,但仍然显示相同页。我怎样才能实现它?

例子
我希望用户更改页面背景的颜色。 (背景颜色存储在session('backgroundcolor').
我该怎么做才能让当用户点击 'Green Backgroundcolor' 时会话获得新值和当前页面(用户点击按钮时所在的页面) 正在重新加载。

(按钮在主布局中,因此可以在站点的所有页面上单击,当然这些页面具有所有不同的路径)

获取信息
我使用 symfony2。我不想用 javascript/jquery 来做,因为这是一个例子,有时用户更改其他一些会话值会触发 BD 请求。

Post 到同一页面并更改会话变量

<?php
   if(isset($_POST['change_color']))
   {
       session_start();
       $_SESSION['backgroundcolor']=$_POST['change_color'];
   }
//continue with your code
?>

点击您的按钮后,向同一页面发送 post 请求。

这里是针对 Symfony 的改编(改编自未针对 Symfony 改编的 Tyranicangel 代码):

我使用了一个表单并发布到同一页面(表单中的 action="")

$session = $this->getRequest()->getSession(); // access to session
if(isset($_POST['backgroundcolor'])) 
{
   $session->set('backgroundcolor',$_POST['backgroundcolor']);
}