1

コードを検索するプログラムがあります。検索すると、検索結果のページが表示されます。そのページには、クリックできるコンテンツが表示されます。そのコンテンツをクリックすると、製品の詳細が表示されます。この詳細ページから、ブラウザーでクリックして戻ると、検索結果ページに戻るはずですが、ここでドキュメントの有効期限が切れています。ドキュメントの有効期限が切れたページをリロードすると、検索結果が再び表示されます。私はコードイグナイターを使用しています。見つけたコードをいくつか試してみましたが、まだ機能していません。それが私の問題です。私を助けてください。ありがとうございました。

コントローラ

public function search_bar($keyWordRestoran=NULL, $page=NULL, $orderBy=NULL)
        {
            if($this->session->userdata('logged_in'))
            {
                $session_data = $this->session->userdata('logged_in');
                $data['nama'] = $session_data['nama'];
                $data['id'] = $session_data['id_user'];
                $data['tipeUser'] = $session_data['tipe_user'];

            }
            else{
                $data['nama'] = "";
                $data['id'] = "0";
                $data['tipeUser']="";
            }
            $data['url_image'] = $this->imageUrl;
            $keyWordRestoran_ip = $this->input->post('input-keyword');
            if($keyWordRestoran_ip=="")
            {
                $session_data = $this->session->userdata('keyword_resto');
                $keyWordRestoran = $session_data['keyword_resto'];
            }
            else{
                $sess_array2 = array();
                $sess_array2 = array(
                    'keyword_resto' => $keyWordRestoran_ip
                    );
                $this->session->set_userdata('keyword_resto', $sess_array2);
                $session_data = $this->session->userdata('keyword_resto');
                $keyWordRestoran = $session_data['keyword_resto'];
            }

            $data['kunci_cari'] = $keyWordRestoran;

            $config['base_url'] = base_url().'/home_controller/search_bar/'.$keyWordRestoran;

            $data['jmlh_rows'] = $this->restoran->GetRestoran_search($keyWordRestoran);

            $total_row = $data['jmlh_rows']->num_rows();

            $config["total_rows"] = $total_row;
            $config["per_page"] = 8;
            $config['cur_tag_open'] = '&nbsp;<a class="current">';
            $config['cur_tag_close'] = '</a>';
            $config['next_link'] = 'Next';
            $config['prev_link'] = 'Previous';

            $this->pagination->initialize($config);

            $str_links = $this->pagination->create_links();
            $data["links"] = explode('&nbsp;',$str_links );
            $data["dataRestoran"] = $this->restoran->GetRestoranPerPage_search($config["per_page"], $keyWordRestoran, $page, $orderBy);
            $data['url_image'] = $this->imageUrl;
            $data['data_kategori'] = $this->jenismakanan->Getjenismakanan();
            $this->load->view('food-type_search', $data);
        }

検索ビュー

<div class="header-bottom">
    <div class="col-xs-1">
        <button class="toggle-button"></button>
    </div>
    <div class="col-xs-11">
    <?php echo form_open('home_controller/search_bar');?>
    <div class="search">
    <form method="GET">
        <input type="text" id= "input-keyword" name="input-keyword" placeholder="Search ..." value="<?php echo set_value('input-keyword')?>" >
        <input type="submit" value="">  
    </form><?php echo form_close(); ?> 
    </div>
    </div>
<div class="clearfix"> </div>

4

1 に答える 1

2

フォームを 2 回含めました。1 つのフォームは を使用して作成され<?php echo form_open('home_controller/search_bar');?>、別のフォームは html で静的です。そのため、静的な html フォームを削除する必要があり、for_open は問題ありません。form_open では、メソッド get を指定する必要があります。ここで私はこのコードを更新しました-

<div class="header-bottom">
    <div class="col-xs-1">
        <button class="toggle-button"></button>
    </div>
    <div class="col-xs-11">
    <?php echo form_open('home_controller/search_bar',array('method' => 'get'));?>
    <div class="search">

        <input type="text" id= "input-keyword" name="input-keyword" placeholder="Search ..." value="<?php echo set_value('input-keyword')?>" >
        <input type="submit" value="">  
    </div>
   <?php echo form_close(); ?> 
    </div>
<div class="clearfix"> </div>

search_bar 関数のコントローラーで、次のように投稿する代わりに get メソッドを使用してフォーム値を取得するようになりました

$keyWordRestoran_ip = $this->input->get('input-keyword');
于 2016-11-26T10:49:32.443 に答える