Я понимаю, что эта ветка старая, но я новичок в CodeIgniter и работаю с подобной проблемой. Моя задача состоит в том, чтобы создать форму поиска, которая находит производителей по определенному почтовому индексу. Вот мое решение. Это проще, чем я ожидал, и может помочь кому-то еще.
Этот код предполагает, что вы подключены к своей базе данных и имеете стандартное приложение MVC CI и т. Д.
Я выполняю большую часть этой задачи в модели и представлении, но у меня есть этот метод в моем контроллере:
public function result()
{
$zipcode = $this->input->post('zip_code');
$query = $this->db->get_where('growers', array('zip LIKE' => $zipcode));
return $query->result_array();
}
В моей модели я использовал следующий метод:
public function result()
{
$zipcode = $this->input->post('zip_code');
$query = $this->db->get_where('growers', array('zip LIKE' => $zipcode));
return $query->result_array();
}
У меня есть три просмотра - одна страница (находится в views / pages / search.php) и два виджета - один для формы поиска и один для результатов поиска (находится в views / widgets / result).
У меня есть форма результатов поиска на той же странице, что и результаты. Однако каждый раздел содержится в своем собственном файле представления, который я поместил в представления / виджеты. Код для этого раздела в представлении страницы:
<div class="search" style="margin-top:0px;">
<?php
$this->load->view('widgets/search');
?>
</div>
</div>
<div id="results">
<div id="grower-info">
<?php
$this->load->view('widgets/result');
?>
</div>
</div>
Виджет формы поиска:
<form action="search-results" method="post">
<input type="text" maxlength="10" name="zip_code" value="zip code" size="10">
<input type="submit" name="submit" value="SEARCH">
</form>
Виджет результатов поиска:
<?php
$results = $this->pages_model->result();
foreach ($results as $result)
{
echo '<h4>'.$result['company'].'</h4>';
echo $result['address_1'] . ' ' . $result['address_2'].'<br>';
echo $result['city'].', ' . $result['state'] . ' ' . $result['zip'].'<br>';
echo 'Phone: ' . $result['office_phone'].'<br>';
echo 'Fax: ' . $result['office_fax'].'<br>';
echo 'Website: <a href="'.$result['website'].'" target="_blank">' . $result['website'].'</a><br>';
echo '<br>';
echo '<hr>';
}
if (count($results) < 1) {
echo 'No results found. Please try your search again, or try <a href="another-search">another search</a>.';
}
?>
Надеюсь, это кому-нибудь поможет!