更改会话变量的值

时间:2013-06-24 22:10:48

标签: php mysql session-variables

我创建了一个网站,当用户登录时,他指定年份,即2013-2014或2014-2015等等......现在,我将这个年份值存储在会话变量中,我是通过网站使用它。现在,如果用户想要更改年份,他必须退出,然后以不同年份登录。我在主页上创建了一个下拉菜单,它将显示数据库中的所有年份。我想通过从主页选择一年而不退出来更改会话变量的值。

以下是代码:

session_start();
if(!isset($_SESSION["myusername"])){
    header("location:login.php");
}

$year = $_SESSION["year"];

以下是下拉菜单的代码:

$query = "SELECT * FROM year";
$result = mysql_query($query);
echo "<select class='innerinputstyle' id='year' name='year'><option value='$year'>$year</option>";
while($note=mysql_fetch_array($result)){
echo "<option value=$note[year]>$note[year]</option>";
}
echo "</select>";

有人可以告诉我如何从主页更改$year的值吗?

2 个答案:

答案 0 :(得分:0)

更改

echo "<select class='innerinputstyle' id='year' name='year'>"

echo "<select class='innerinputstyle' id='year' name='year' onChange='doIt()'>"

这是ajax函数

function doIt(){
    var xmlhttp=new XMLHttpRequest();
    xmlhttp.onreadystatechange=function(){
    }
    var new_year = document.getElementById('year').value;
    xmlhttp.open("GET","change_year.php?year="+new_year,true);
    xmlhttp.send()
    return false;
}

在change_year.php上你可以轻松改变

$_SESSION['year']=$_GET['year'];

警告:未经测试的代码。用于描绘这个想法。

答案 1 :(得分:0)

我认为你有很多选择来实现这一点,而AJAX就是其中之一,但一切都取决于你想要如何实现用户界面。您可以考虑使用下拉菜单创建一个小表单并提交年份,您可以通过提交按钮或通过javascript执行此操作,对于AJAX示例,解决方案始终是相同的:

$_SESSION['year']=$_GET['year'];

最后取决于用户界面,如果你想让用户看不到它,而不刷新页面,请使用AJAX,否则只需提交你的输入