【问题标题】:Conditionally set session data in codeigniter在 codeigniter 中有条件地设置会话数据
【发布时间】:2012-08-14 07:35:18
【问题描述】:

我想在我的视图中设置我的会话数据,但有条件地,所以在我视图的 javascript 部分中我有

$('#demo').click(function(){
$this->session->set_userdata('sample',10);
});

然而,每当我刷新我的页面,而不点击按钮,会话数据,“样本”设置,有没有办法我可以只在点击按钮后获取这个会话数据集?

谢谢

【问题讨论】:

    标签: javascript jquery codeigniter session


    【解决方案1】:

    您正在混合使用 Javascript 和 PHP(客户端和服务器端)。您可以像这样使用 Ajax 来做到这一点:

    $('#demo').click(function(){
      $.ajax({
         type: "POST",
         url: "mycontroller/sessions"
       }).done(function( msg ) {
         alert( "Data Saved: " + msg );
       });
    });
    

    在您的Mycontroller.php 文件中,您应该创建一个名为“sessions”的函数:

    function sessions(){
       $this->session->set_userdata('sample',10);
    }
    

    如果您需要将信息从 Javascript 传递到 PHP:

    var dummy = 10;
    $('#demo').click(function(){
       $.ajax({
          type: "POST",
          url: "mycontroller/sessions",
          data: { value: dummy }
       }).done(function( msg ) {
          alert( "Data Saved: " + msg );
       });
    });
    
    
    function sessions($value){
       $this->session->set_userdata('sample',$value);
    }
    

    更多关于 JQuery 中 Ajax 的信息http://api.jquery.com/jQuery.ajax/

    编辑:

    检查 CodeIgniter 中是否存在会话变量:

    function sessions(){
       $sId = $this->session->userdata('session_id');
       if(isset($sId)){
          // session_id exist
       }
    }
    

    “检索会话数据”部分http://codeigniter.com/user_guide/libraries/sessions.html

    【讨论】:

    • 这有帮助,但是我们在 codeigniter 中是否有一种技术来检查之前是否设置了会话变量?
    • 嗯,在我的代码中的任何地方我都没有设置“session_id”,当我执行 $sId = $this->session->userdata('session_id'); 时,codeigniter 会抛出一个错误。谢谢,真的很感激:D
    • @user1537158 session_id 只是一个例子。您应该指定自己的会话变量(在您发布的代码中,您的会话变量是“示例”)。
    • 是的,我理解,但是如果我有场景,我还没有设置会话 ID,我在代码的某个地方检查 if($this->session->userdata('something_not_yet_set') ); codeigniter 会给我一个错误还是返回 false ?
    【解决方案2】:

    如果会话中的变量未设置,则以下方法返回 FALSE

    $this->session->userdata('sample')
    

    否则返回适当的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      相关资源
      最近更新 更多