【问题标题】:Search shows all factories instead of the one i search搜索显示所有工厂,而不是我搜索的那个
【发布时间】:2013-03-07 09:45:59
【问题描述】:

我的 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>

希望有人看到问题:)

一些截图来澄清我的意思: 这是搜索字段:

这是结果页面:

谢谢:)

【问题讨论】:

    标签: php html codeigniter search


    【解决方案1】:

    你得到了所有的结果,因为 $this->input->post('search) 是空的

    你必须做这件事之一

    根据您的观点更改发布方法:

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

    或者,如果想要保持表单通过获取请求提交,请将您的控制器更改为此

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

    只需执行其中一项更改并提供反馈

    【讨论】:

      【解决方案2】:

      您不能将值发布到模型。与其发布,不如将其作为控制器本身的参数传递。

      型号:

      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。

      【讨论】:

      • 那么删除模型功能?如何将控制器中的新功能路由到视图?
      • @KeesSonnema 不要删除该功能。获取控制器中的发布值并将其传递给模型
      • 我真的不知道该怎么做。这是我的模型功能:pastebin.com/LRGKVVTs 和我的控制器功能:pastebin.com/Pq1ffb6R 这是我的观点:pastebin.com/RyMhACJj
      • 当我搜索它时,我仍然显示所有工厂而不是 1。我想念什么。顺便说一句,错误消失了。谢谢你
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 2018-06-16
      • 2021-01-25
      • 2012-08-04
      • 1970-01-01
      相关资源
      最近更新 更多