我正面临Codeigniter的session
问题
我有一个表单,其中包含一个用于执行搜索的选择框。提交表单时,搜索条件存储在会话中,用户返回表单后,会话用于填充表单字段。在我的本地机器中,它运行良好。但在服务器中,它不适用于选择框。只清除浏览器缓存后,它就可以工作了
我刚刚重复了会话变量。表单外部。并且它保存正确的数据。在Firebug中,它还显示了正确的值-<option selected="selected">foobar</option>
。但我在选择框中看不到选定的值
仅供参考-我正在使用以下CI表单帮助程序打印选择框
<?php echo form_dropdown('product', $search_options['product_list'],
stripslashes($this->session->userdata('qes_product')),
'id="qes_product" tabindex="1"');
?>
知道吗?
1)确保会话使用的是DB存储,而不是cookie。Cookie的大小有限,如果你做错了什么,也就是说不替换值,而是不断地将它们添加到会话中,那么它可能会被填满。这是你应该研究的其他内容(你在会话中存储的内容)
2) 不要在您的视图中使用$this->会话。将所有内容存储在会话中的数组(如$formdata)中,然后在控制器中检索并将其传递给视图。
您可以使用$formdata['ques_product']
在表单中访问它
如果以上内容没有帮助,请尝试在会话配置中更改sess_expire_on_close
的值。CI中似乎有一个奇怪的错误。
祝你好运!