我的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');
}
第一个函数仅用于输入字段。第二个是结果。
我的观点:
我的搜索字段视图:
<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>
希望有人看到问题:)
一些截图来澄清我的意思: 这是搜索字段:
这是结果页:
谢谢:)
答案 0 :(得分: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();
}
CONTROLLER:
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
。
答案 1 :(得分:1)
您获得了所有结果,因为$ this-&gt; input-&gt; post('search)为空
你必须做其中一件事
在您的观点上,将方法更改为发布:
<form name="input" action="searchresults" method="post">
或者,如果希望保持表单提交请求,请将控制器更改为
$match = $this->input->get('search');
只需执行一次此更改并提供反馈