2012-04-08 72 views
-3

我正在使用codeigniter,并试图了解在用户更改下拉菜单时如何更改会话变量的值。Dropdown更改会话值

<select name="testselect"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

想法?

+0

您的意思是预选了一个值吗? – Norse 2012-04-08 19:40:30

+0

不,我已经预先选择了值,但是如果用户在下拉列表中选择了其他选项,我希望它能够再次更改会话全局。 – 2012-04-08 19:41:34

+0

看,你需要提供更多信息;在用户更改提交表单之前必须发生的下拉值之后,必须发生什么?如果是这样,那么你需要使用JavaScript来捕获这个。 – stealthyninja 2012-04-08 21:10:24

回答

2

既然你标记你的问题的jQuery,我假定你的地方使用它在你的页面,让你改变你的HTML这样的:

<select name="testselect" id="testselect"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
</select> 

,并添加到您的通话$(document).ready(..);捕获对该下拉菜单的更改,如下所示:

$(document).ready(function() { 
    $('#testselect').change(function() { 
     // POST the changed value to a method in a controller that can accept 
     // a parameter and that'll set the session variable for you 
     $.post("http://location/to/controller/method/", 
      { testselect: this.value }, 
      'html' 
     ); 
    }); 
}); 
0

您必须使用JavaScript来提交新闻值,并且您还需要控制器中的一个函数来捕获该值。但我不确定是否有可能更改会话ID。我几乎肯定它不可能,但肯定是不安全的。

+0

它不是会话ID它只是一个会话密钥值 – 2012-04-08 23:35:35

+0

有一件事是会话值和其他是关键。会话密钥值是什么意思?清楚。 – 2012-04-09 12:54:04