0

CodeIgniter アプリに検索機能がありますが、うまく機能せず、CodeIgniter を初めて使用するため、何が問題なのかわかりません。

私のモデル関数:

function get_search()
{
    $match = $this->input->post('search');
    $this->db->like('Bedrijfsnaam', $match);
    $this->db->or_like('Website', $match);
    $this->db->or_like('Email', $match);
    $query = $this->db->get('bedrijven');

    return $query->result();
}

私のコントローラー機能

function search()
{
    $this->load->view('header');
    $this->load->view('search');
    $this->load->view('footer');
}

function searchresults()
{
    $this->load->model('Bedrijven_model');
    $data['query'] = $this->Bedrijven_model->get_search();
    $this->load->view('header');
    $this->load->view('searchresults', $data);
    $this->load->view('footer');
}

最初の関数は入力フィールド専用です。2番目は結果です。

私の見解:

私の検索フィールドビュー:

<div id="bigcontent">
<h2>Bedrijven zoeken</h3>

<form name="input" action="searchresults" method="get">
<input type="search" name="search" id="search">
<input type="submit" value="Zoeken">
</form>

私の結果ページ:

<div id="bigcontent">
<table>
<tr><th>Bedrijf</th><th>Website</th><th>email</th></tr>
<?php foreach($query as $item):?>
<tr>
<td><?= $item->Bedrijfsnaam ?></td>
<td><?= $item->Website ?></td>
<td><?= $item->Email ?></td>
</tr>
<?php endforeach;?>
</table>
</div>

誰かが問題を見てくれることを願っています:)

私が何を意味するかを明確にするためのいくつかのスクリーンショット: これは検索フィールドです:

検索フィールド

これは結果ページです:

結果ページ

ありがとう :)

4

2 に答える 2

1

$ this-> input-> post('search)が空であるため、すべての結果が得られます

あなたはこのことの1つをしなければなりません

ビューで、投稿する方法を変更します。

<form name="input" action="searchresults" method="post">

または、getリクエストを使用してフォームを送信し続ける場合は、コントローラーをこれに変更します

$match = $this->input->get('search');

この変更の1つを実行して、フィードバックを送信してください

于 2013-03-07T11:40:30.333 に答える
1

モデルに値を投稿することはできません。投稿する代わりに、コントローラー自体からパラメーターとして渡します。

モデル :

function get_search($match)
{
    $this->db->like('Bedrijfsnaam', $match);
    $this->db->or_like('Website', $match);
    $this->db->or_like('Email', $match);
    $query = $this->db->get('bedrijven');

    return $query->result();
}

コントローラー:

function search()
    {
        $this->load->view('header');
        $this->load->view('search');
        $this->load->view('footer');
    }

    function searchresults()
    {
        $match = $this->input->post('search');
        $this->load->model('Bedrijven_model');
        $data['query'] = $this->Bedrijven_model->get_search($match);
        $this->load->view('header');
        $this->load->view('searchresults', $data);
        $this->load->view('footer');
    }

$matchコントローラーから渡します。

于 2013-03-07T09:49:30.193 に答える