![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 550 Pomógł: 9 Dołączył: 29.05.2009 Skąd: Ostrów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Witam,
stworzyłem wyszukiwarkę, która wyszukuje dokładnie wprowadzony ciąg znaków z bazy danych np: wprowadzę "Ostrów Wielkopolski" znajduje ładnie. Nie wiem jak zrobić aby np: po wprowadzeniu "ostrow" również wyświetliło mi ten wynik. akcja kontroler CODE public function searchAction() { $roomsDAO = new Rooms(); $searchForm = new SearchForm(); $filter = new Zend_Filter(); $filter->addFilter(new Zend_Filter_StripTags()); $filter->addFilter(new Zend_Filter_StringTrim()); $this->view->form = $searchForm; $room_type_id = $filter->filter($this->_getParam('room_type_id')); $province_id = $filter->filter($this->_getParam('province_id')); $city = $filter->filter($this->_getParam('city')); $data = array( 'province_id' => $province_id ? $province_id : null, 'city' => $city ? $city : null, 'room_type_id'=> $room_type_id ? $room_type_id : null ); if($room_type_id or $province_id or $city){ $isSearch = true; } else { $isSearch = false; } $searchForm->populate($data); $forPage = 2; $filterInt = new Zend_Filter_Int(); $page = $filterInt->filter($this->_getParam('page')); $page = $page ? $page : 1; $paginator = Zend_Paginator::factory($roomsDAO->search($data)); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage($forPage); $rooms = $roomsDAO->itemsToRowset($paginator->getCurrentItems()); $photos = array(); foreach($rooms as $room) { $dirname = './files/rooms/' . $room->id. '/'; if (is_dir($dirname)) { if ($dh = opendir($dirname)) { $number = 1; while (($filename = readdir($dh)) !== false) { $filepath = $dirname . $filename; if (!is_dir($filepath)) { $findme = '_t.jpg'; $pos = strpos($filename, $findme); if ($pos !== false) { /* do wyswietlania wszystkich zdjęć $photos[$room->id][] = $filename; */ /* do wyswietlania jednego zdjęcia */ $photos[$room->id] = $filename; $photos2[$room->id] = substr($filename, 0, -6).'_o.jpg'; continue; } } } } } } $this->view->photos = $photos; $this->view->rooms = $roomsDAO->itemsToRowset($paginator->getCurrentItems()); $this->view->paginator = $paginator; $this->view->query = $_SERVER['QUERY_STRING']; $this->view->formData = $data; $this->view->isSearch = $isSearch; } formularz CODE <?php class SearchForm extends Zend_Form { public function __construct() { parent::__construct(); $this->setAttrib('method', 'get'); $this->setAttrib('action', '/index/search/page/1'); $this->setAttrib('onsubmit', 'return searchValidator();'); $province_id = new Zend_Form_Element_Select('province_id'); $province_id->setLabel('') ->addFilter('StripTags') ->setAttrib('class', 'text'); $provincesDAO = new Provinces(); $province_id->addMultiOption('', 'wybierz województwo'); $provinces = $provincesDAO->fetchAll(); foreach($provinces as $province){ $province_id->addMultiOption($province->id, $province->name); } $city = new Zend_Form_Element_Text('city'); $city->setLabel('') ->addFilter('StripTags') ->setValue('nazwa miasta') ->setAttrib('maxlength', '128') ->setAttrib('class', 'text') ->setAttrib('onfocus', 'if (this.value == \'nazwa miasta\') this.value = \'\'') ->setAttrib('onblur', "if (this.value == '') this.value = 'nazwa miasta'"); $room_type_id= new Zend_Form_Element_Select('room_type_id'); $room_type_id->setLabel('') ->addFilter('StripTags') ->setAttrib('class', 'text'); $roomsTypesDAO = new RoomsTypes(); $room_type_id->addMultiOption('', 'wybierz rodzaj sali'); $roomsTypes = $roomsTypesDAO->fetchAll(); foreach($roomsTypes as $roomType){ $room_type_id->addMultiOption($roomType->id, $roomType->name); } $submit = new Zend_Form_Element_Submit('Szukaj'); $this->addElements(array($province_id, $room_type_id, $submit, $city )); $this->clearDecorators(); $this->setDecorators( array( 'FormElements', 'Form' ) ); $submit->setDecorators( array( 'ViewHelper', array('HtmlTag', array('tag' => 'p', 'class' => 'buttons', 'id' => 'p_submit')) ) ); $province_id->setDecorators( array( 'ViewHelper', array('HtmlTag', array('tag' => 'p', 'id' => 'p_province_id')) ) ); $city->setDecorators( array( 'ViewHelper', array('HtmlTag', array('tag' => 'p', 'id' => 'p_city')) ) ); $room_type_id->setDecorators( array( 'ViewHelper', array('HtmlTag', array('tag' => 'p', 'id' => 'p_room_type_id')) ) ); } } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 03:42 |