Codeigniter上的会话问题

时间:2012-12-26 08:34:04

标签: php codeigniter session

我在代码点火器上的会话有问题。首先,我想构建一个高级搜索功能。高级搜索功能将允许用户使用多个类别进行搜索。在用户搜索某些内容并且结果成功返回后,左侧边栏将显示搜索键和“编辑按钮”。编辑按钮将允许用户转到上一页并更改其搜索键。这就是为什么,我需要使用session来存储搜索关键字。但是在我设置会话并尝试检索该值之后,就出现了问题。

这是工作流程。 - 在a.php上设置会话 - 在b.php上的函数中获取会话值 - Ajax到b.php接收会话值并显示它。

有关信息,我使用php和代码点火器作为服务器端。

这是代码:

a.php只会

    if (!empty($params['modelname'])){
        $modelid = "";
        for($i = 0; $i < count($params['modelname']); $i++)
        {
            $modelid .= $params['modelname'][$i];
                if($i+1 < count($params['modelname']))
                {
                    $modelid .= ", ";
                }
        }
        $data = array(
            "modelname" => $modelid  
        );
        $this->session->set_userdata($data);
     ?>
     <span id="model"><strong><?php echo $modelid; ?><?php echo form_button('btnsearchmodel', 'Edit','class="btnsearchkata" id="btnsearchmodel"')?></strong></span>
     <div class="clear"></div>
     <?php }

b.php

public function getselectedmodel()
{
    $data = $this->session->userdata('modelname');
    echo $data;
}

c.php

function getCariModel()
   {
        var brandname = ""
        $(".brand").each(function(){
            if ($(this).is(':checked') ){
                brandname += $(this).val()+',';                    
            }
        });

        if(brandname != "")
        {
            $.ajax({
                type: "POST",  
                url: '<?php echo site_url("ajax_data/getselectedmodel"); ?>',
                dataType: 'json',
                data: {c: "ambilmodel"},
                success: function(data) {
                    alert(data);
                }
            });
        }
   }

问题是:当我没有收到数据时。当我尝试提醒数据时,警报根本不起作用。似乎请求不成功

我猜问题是我设置会话时的问题。但我真的不知道我的代码有什么问题。谁有人可以帮助我?谢谢

1 个答案:

答案 0 :(得分:2)

您正在等待javascript中的JSON,但在您的控制器操作getselectedmodel中,您没有json_encode。试试这个:

public function getselectedmodel()
{
    $data = $this->session->userdata('modelname');
    $this->output->set_output(json_encode($data));
}

如果你还没有输出。尝试直接采取行动,请求并更新您的问题。