0

最初の訪問時にポップアップ ダイアログが表示されます。半径で郵便番号を設定できます。onsubmit Cookie が設定され、メイン Web ページに表示されます。

ここでこれを試すことができます: http://kees.een-site-bouwen.nl

私のデータベースで工場を検索するための検索フォームが表示されます。私の工場のテーブルは次のようになります。

Factories
- - - - - 
idfactories
factoryname
postcode
place
telephonenumber
email
website
profile
adress

テーブルに郵便番号フィールドがあることに注意してください。クッキーを使用して設定した郵便番号を使用してそのテーブルを検索するにはどうすればよいですか?

Cookieを設定するための私のコード:

    <form method="post" action="">
        <input type="text" name="postcode" placeholder="postcode">
    <select name="radius">
        <option disabled selected>Afstand</option>
        <option>5km</option>
        <option>10km</option>
        <option>15km</option>
        <option>25km</option>
    </select>
    <br /><br />
        <input type="submit" value="Opslaan">
        <input type="hidden" name="submitted" value="true">
        <input type="hidden" name="afstand" value="true" />
    </form>

<?php
    if(isset($_POST['postcode']))
    {
        setcookie('postcode', $_POST['postcode'], time() + (20 * 365 * 24 * 60 * 60));
        setcookie('radius', $_POST['radius'], time() + (20 * 365 * 24 * 60 * 60));
        header("location: {$_SERVER['PHP_SELF']}");
    };

?>

<?php

if (isset($_POST["set_radius"])) {
}
?>

私のモデルの私の検索クエリ:

function get_search($match)
{
    $this->db->like('Bedrijfsnaam', $match);
    $this->db->or_like('Postcode', $match);
    $this->db->or_like('Plaats', $match);
    $this->db->or_like('Telefoonnummer', $match);
    $this->db->or_like('Email', $match);
    $this->db->or_like('Website', $match);
    $this->db->or_like('Profiel', $match);
    $this->db->or_like('Adres', $match);
    $this->db->or_like('Categorie', $match);

    $this->db->join('bedrijven', 'bedrijfcategorieen.idbedrijven = bedrijven.idbedrijven');
    $this->db->join('categorieen', 'bedrijfcategorieen.idcategorieen = categorieen.idcategorieen');
    $this->db->group_by('bedrijfcategorieen.idbedrijven', 'bedrijfcategorieen.idcategorieen');

    $query = $this->db->get('bedrijfcategorieen');

    return $query->result();
}

私のコントローラー機能:

function searchresults()
{   
    $this->breadcrumbs->page = array('link'=> base_url().'home/search' ,'title' => 'Bedrijven Zoeken' );            
    $this->breadcrumbs->method = array('link'=> base_url().'home/searchresults' ,'title' => 'Zoekresultaten' );
    $data['breadcrumbs'] = $this->breadcrumbs->get();
    $match = $this->input->post('search');
    $data['query'] = $this->bedrijven_model->get_search($match);
    $this->load->view('views/header');
    $this->load->view('views/searchresults', $data);
    $this->load->view('views/footer');
    $data['query'] = $this->bedrijven_model->bedrijven_tags();
}

使ってみ$this->input->cookie('search');たけどダメだった

4

2 に答える 2

0

次のコードをコントローラー関数に追加するだけで修正しました

$match = $this->input->cookie('postcode');

コードイグナイターはすごい!

于 2013-04-15T08:05:49.483 に答える
0

まず、キー「swarch」でクッキーを保存する場所がわかりません。郵便番号と半径しか見えません。次に、次のようにCookieを取得する必要があります

$this->input->cookie('postcode')

とにかく、正しいCookieを設定している場合。Cookie ヘルパーを読み込んでいますか?

$this->load->helper('cookie');

乾杯!

于 2013-04-15T07:54:10.890 に答える