主要问题
我想更改一些会话参数(通过点击按钮来显示或不显示我的页面的某些部分),但仍然显示相同的页面 。我怎么能实现它?
为例
我希望用户更改页面背景的颜色。 (背景颜色存储在会话中('backgroundcolor')
如何在用户点击“绿色Backgroundcolor”时,会话获取新值和当前页面(用户点击按钮时的页面)是正在重新加载。
(按钮处于主布局,因此可以点击网站的所有页面,当然有不同的路线)
FOR INFO
我用symfony2。我不想用javascript / jquery来做这个,因为这是一个例子,有时候用户的一些其他会话值更改会触发BD请求。
答案 0 :(得分:0)
这里适用于Symfony(改编自Tyranicangel代码,不适用于Symfony):
我使用了一个表单并发布到同一页面(action =""在表单中)
$session = $this->getRequest()->getSession(); // access to session
if(isset($_POST['backgroundcolor']))
{
$session->set('backgroundcolor',$_POST['backgroundcolor']);
}
答案 1 :(得分:-1)
发布到同一页面并更改会话变量
<?php
if(isset($_POST['change_color']))
{
session_start();
$_SESSION['backgroundcolor']=$_POST['change_color'];
}
//continue with your code
?>
点击你的按钮,发送一个帖子请求到同一页面。