Я пытаюсь создать сайт управления событиями, используя codeigniter, но у меня возникают проблемы с корректной работой функции поиска.
Вот функция поиска на контроллере событий
public function search()
{
$keyword = $this->input->post('keyword');
$data['events'] = $this->event_model->get_events_by_keyword($keyword);
$this->session->set_flashdata('event_search', 'Showing all results relating to '.$keyword);
$this->load->view('templates/header');
$this->load->view('events/search', $data);
$this->load->view('templates/footer');
}
А вот функция для получения событий в модели событий
public function get_events_by_keyword($keyword)
{
$this->db->order_by('events.date', 'ASC');
$this->db->like('name', $keyword)
->or_like('location', $keyword)
->or_like('genre', $keyword)
->or_like('date', $keyword);
$query = $this->db->get('events');
return $query->result_array();
}
В настоящее время у меня есть 2 просмотра: 'events / index. php' и 'events / search. php' , Функция поиска прекрасно работает при использовании со страницы поиска, но при использовании со страницы индекса ничего не происходит. Страница просто перезагружается.
<section id="events-page">
<form action="<?php site_url('events/search'); ?>" method="post">
<input type="text" name="keyword" placeholder="search" required autofocus>
<input type="submit" value="Search">
</form>
<div class="container">
<div class="row center-xs center-sm center-md center-lg">
<?php foreach($events as $event) : ?>
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-3 events-page-content">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<a href="<?php echo site_url('/events/'.$event['slug']); ?>">
<img src="<?php echo site_url(); ?>/assets/images/events/<?php echo $event['event_image']; ?>">
</a>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<a href="<?php echo site_url('/events/'.$event['slug']); ?>">
<h3><?php echo $event['name']; ?></h3>
<small>Location: <?php echo $event['location']; ?></small><br>
<small>Genre: <?php echo $event['genre']; ?></small><br>
<small>Date: <?php echo $event['date']; ?></small></a>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
Оба представления одинаковы, поэтому я не уверен, почему функция поиска работает правильно только на одном из представлений. Я предполагаю, что это будет проблема маршрута, но я не уверен, как решить эту проблему. В идеале мне не нужны оба представления, так как они абсолютно одинаковы, поэтому я попытался изменить функцию поиска на контроллере событий на эту, чтобы просто загрузить страницу событий новыми данными, но это все равно не имеет никакого эффекта, и страница просто перезагружается и остается как есть.
public function search()
{
$keyword = $this->input->post('keyword');
$data['events'] = $this->event_model->get_events_by_keyword($keyword);
$this->session->set_flashdata('event_search', 'Showing all results relating to '.$keyword);
$this->load->view('templates/header');
$this->load->view('events/index', $data);
$this->load->view('templates/footer');
}
Надеюсь, кто-то здесь сможет помочь, ура.