revtail 14 Жалоба Опубликовано: July 2, 2015 Есть форма поиска standart_search_formесть мною добавленная таблица в data типа selext_boxс параметрами {prodam~~Продажа}{arenda~~Аренда}{kuplu~~Куплю}{snimu~~Сниму} Хочу вывести это фильтр для пооиска.как тутhttp://www.myned.ru/(Действие) Это читалhttp://wiki.sitebill.ru/index.php?title=%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0и всю ветку форму тоже Что делать? куда смотреть ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: July 2, 2015 читали - это хорошо, так и что? не получается ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
revtail 14 Жалоба Опубликовано: July 3, 2015 <?phpclass Template_Search extends SiteBill { public function getParams(){ $params=array(); if(''!==$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); } return $params; } public function run(){ $where_array=array(); $params=$this->getParams(); require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $data_model_array = $data_model->get_kvartira_model(false); $data_model_array = $data_model_array['data']; if(isset($params['action_d']) && isset($data_model_array['action_d'])){ $where_array[]=DB_PREFIX.'_data.action_d='.$params['action_d']; } return array( 'where'=>$where_array, 'params'=>$params ); }}?>ip таблицы - action_dкуда смотреть ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: July 3, 2015 ip таблицы - action_dкуда смотреть ?У вас не работает это?Не совсем вопрос понятен. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
revtail 14 Жалоба Опубликовано: July 3, 2015 Да, не работаетВ форму поиска добавляю:<select name="action_d" class="form-control"><option value="prodam"> Продажа</option><option value="arenda"> Аренда</option><option value="kuplu"> Куплю</option><option value="snimu"> Сниму</option></select>файлик в шаблоне main/template_search.php<?phpclass Template_Search extends SiteBill { public function getParams(){ $params=array(); if(''!==$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); } return $params; } public function run(){ $where_array=array(); $params=$this->getParams(); require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php'); $data_model = new Data_Model(); $data_model_array = $data_model->get_kvartira_model(false); $data_model_array = $data_model_array['data']; if(isset($params['action_d']) && isset($data_model_array['action_d'])){ $where_array[]=DB_PREFIX.'_data.action_d='.$params['action_d']; } return array( 'where'=>$where_array, 'params'=>$params ); }}?>при выборе. фильтрация не происходитСпасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: July 3, 2015 <option value="prodam"> Продажа</option><option value="arenda"> Аренда</option><option value="kuplu"> Куплю</option><option value="snimu"> Сниму</option> Тут у вас prodam, arenda.... А тут $params['action_d'] = (int)$this->getRequestValue('action_d'); вы эти значения приводите к цлому числу - в данном случае к нулю, в который превращаются все слова. И в поиск в запрос даете уже ноль, а не " prodam, arenda...." . Вот и не ищет. Либо убрать нафик prodam, arenda.... и заменить их нормальными цифрамиЛибо в проверке $params['action_d'] = (int)$this->getRequestValue('action_d'); изменить на условие совпадения с одним из допустимых значений. 1 Chernetskiy reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
revtail 14 Жалоба Опубликовано: July 3, 2015 Сейчас фильтрация работает. заменил prodam на цифры.Проблемы вылезла другая. В админке на странице всех объявлений. не отображаются объявления которые имеют значение в action_d.Что подскажете ?Выявил прямую зависимость от наличия файла main/template_search.php или активности поля в списке форм ( т.е. если включить мое action_d, толь фильтрация начинает работать, на главной все отображается правильно. А вот админке эти объявления исчезают) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: July 3, 2015 На какие именно цифры заменили текстовые названия? Этот кусокif(''!==$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); }так и остался без изменений? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
revtail 14 Жалоба Опубликовано: July 4, 2015 На какие именно цифры заменили текстовые названия? Этот кусокif(''!==$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); }так и остался без изменений?{1~~Продажа}{2~~Аренда}{3~~Куплю}{4~~Сниму}и да этот кусок так и остался без изменений Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: July 4, 2015 if(''!==$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); }замените на if(0!==(int)$this->getRequestValue('action_d')){ $params['action_d'] = (int)$this->getRequestValue('action_d'); } Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
revtail 14 Жалоба Опубликовано: July 5, 2015 Да теперь все работает! Спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах