1

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

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

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

这是代码:

一个.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);
                }
            });
        }
   }

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

我想问题出在我设置会话时。但我真的不知道我的代码有什么问题。任何人都可以帮助我吗?谢谢

4

1 回答 1

2

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

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

如果你仍然没有输出。尝试直接执行您请求的操作并更新您的问题。

于 2012-12-26T08:41:25.290 回答