Znajduje poprawnie wyniki, ale jak przechodzę na kolejną stronę to znajduje mi wszystkie wyniki a nie tylko wyfiltrowane.
Odpowiednie wywołanie metody (sprawdza czy przesłano formularz):
$this->_showAll(); else $this->_search();
Problem tkwi w tym, że _showAll() wyszukuje wszystkie oferty, a _search() wg przesłanego formularza. Fragment tej metody:
$sql .= 'AND nazwa_obiektu LIKE \'%'.$_POST['nazwa_obiektu'].'\'% '; $sql .= 'AND type_id = '.$_POST['rodzaj'].' '; $sql .= 'AND miasto LIKE \''.$_POST['miasto'].'\' '; { $woj = ORM::factory ('state')->where('state', '=', $_POST['wojewodztwo'])->limit('1')->find(); $sql .= 'AND state_id = '.$woj->id.' '; } $sql .= 'AND state_id = '.$_POST['wojewodztwo'].' '; $sql .= 'AND ile_gosci <= '.$_POST['max_gosci'].' '; $sql .= 'AND ile_miejsc <= '.$_POST['max_noclegi'].' '; foreach ($_POST['udogodnienia_obiekt'] as $value) $sql .= " AND udogodnienia_obiekt LIKE '%".$value."%'";
Jak najlepiej zrobić, żeby po przejściu na kolejną stronę wyników było zapamiętane co ma być filtrowane? Za każdym razem po wysłaniu formularza zapisywać warunki do sesji? Tylko, że w takim razie klasa Pagination, wcale nie wydaje się być dużym ułatwieniem.