1

コード イグナイターのセッションに問題があります。まず、高度な検索機能を構築したいと考えています。高度な検索機能により、ユーザーは複数のカテゴリを使用して検索できます。ユーザーが何かを検索して結果が正常に返されると、左側のサイドバーに検索キーと「編集ボタン」が表示されます。編集ボタンを使用すると、ユーザーは前のページに移動して検索キーを変更できます。そのため、セッションを使用して検索キーを保存する必要があります。しかし、セッションを設定して値を取得しようとすると、問題が発生しました。

これがワークフローです。- a.php にセッションを設定する - b.php の関数内でセッション値を取得する - b.php に Ajax してセッション値を受け取り、表示する。

情報については、サーバー側に 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);
                }
            });
        }
   }

問題は、データを受信しなかったときです。そして、データにアラートを出そうとすると、アラートがまったく機能しませんでした。リクエストが成功していないようです

問題は、セッションを設定したときだと思います。しかし、コードの何が問題なのか本当にわかりません。誰でも私を助けることができますか?ありがとうございました

4

1 に答える 1

2

JavaScriptでJSONを待っていますが、コントローラーアクションにはjson_encodegetselectedmodelがありません。これを試して:

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

それでも出力がない場合。要求しているアクションに直接進み、質問を更新してみてください。

于 2012-12-26T08:41:25.290 に答える