Как сделать кликабельные фильтры?

голоса: 0

Добрый день! А можно ли на ucoz сделать кликабельные фильтры? Например добавил фильтр в модуле load - Раздел: "Фильмы", "мультфильмы", "Сериалы". Вывил значение на страницу с материалом и комментариев кодом 
<b>Раздел</b>: $FILTER1_VALUE$.

 
| Автор: | Категория: Каталоги
Изменение категории | | Автор: Yuri_Geruk

Ответов: 1

Голоса: +1
 
Лучший ответ
Что-то подобное ранее уже рассматривалось, ознакомьтесь с материалом https://www.ucoz.ru/qa/index.php/138833
| Автор:
Выбор ответа лучшим | | Автор: DirtyDog
Sentimo,

Установил код:

 <?if($OTHER1_FL$)?>
 <li><label for="other1">$OTHER1_SIGN$:</label> 
 <script type="text/javascript"> var descr = new Array(); descr[0] = 'Фильмы'; descr[1] = 'Сериалы'; descr[2] = 'Мультфильмы'; function catalog_rebuild(x) { $("#input_extrafl1").val(descr[x]); } </script>
<li><select class="select" name="myselect" onchange="catalog_rebuild(this.value)"> 
<option>-Выбрать-</option>
<option value="0">Фильмы</option> 
<option value="1">Сериалы</option> 
<option value="2">Мультфильмы</option> 
</select> 
<span style="display:none;">$OTHER1_FL$<?endif?>

 <?if($OTHER2_FL$)?>
 <li><label for="other2">$OTHER2_SIGN$:</label> 
 <script type="text/javascript"> var descr = new Array(); descr[0] = 'KinoGadget'; descr[1] = 'GeneralFilm'; descr[2] = 'Kaztorrents'; function catalog_rebuild(x) { $("#input_extrafl2").val(descr[x]); } </script>
<li><select class="select" name="myselect" onchange="catalog_rebuild(this.value)"> 
<option>-Выбрать-</option>
<option value="0">KinoGadget</option> 
<option value="1">GeneralFilm</option> 
<option value="2">Kaztorrents</option> 
</select> 
<span style="display:none;">$OTHER2_FL$<?endif?>

Вроде бы работают допполя как фильтры. Но вот потом захожу на страницу редактирования материала и приходится опять вводить допполя. Почему то скрипт не запоминает их!

DirtyDog,

Виртуально оно запоминается, смущает что в поле написано -Выбрать- ?

option меняем на это

<option value="0" <?if($OTHER1_VAL$ = 'название1')?>selected<?endif?>>название1</option> 
<option value="1" <?if($OTHER1_VAL$ = 'название2')?>selected<?endif?>>название2</option> 
<option value="2" <?if($OTHER1_VAL$ = 'название3')?>selected<?endif?>>название3</option> 
<option value="3" <?if($OTHER1_VAL$ = 'название4')?>selected<?endif?>>название4</option> 

принцип понятен? 

И функцию onchange="catalog_rebuild(this.value)"  надо переименовать, иначе значения одного фильтра будут записываться в другой.

Да, спасибо большое!

почему то пишет что не заполнено поля?! Хотя поля заполнены

 

Код

 <?if($OTHER1_FL$)?>
 <li><label for="other1">$OTHER1_SIGN$:</label>
 <script type="text/javascript"> var descr = new Array(); descr[0] = 'KinoGadget'; descr[1] = 'GeneralFilm'; descr[2] = 'Kaztorrents'; function catalog_rebuild(x) { $("#input_extrafl1").val(descr[x]); } </script>
<li><select class="select" name="myselect" onchange="catalog_rebuild(this.value)">
<option>-Выбрать-</option>
<option value="0" <?if($OTHER1_VAL$ = 'KinoGadget')?>selected<?endif?>>KinoGadget</option>
<option value="1" <?if($OTHER1_VAL$ = 'GeneralFilm')?>selected<?endif?>>GeneralFilm</option>
<option value="2" <?if($OTHER1_VAL$ = 'Kaztorrents')?>selected<?endif?>>Kaztorrents</option>
</select>
<span style="display:none;">$OTHER1_FL$<?endif?>

 <?if($OTHER2_FL$)?>
 <li><label for="other1">$OTHER2_SIGN$:</label>
 <script type="text/javascript"> var descr = new Array(); descr[0] = '1280x'; descr[1] = '640x'; function catalog_rebuild(x) { $("#input_extrafl2").val(descr[x]); } </script>
<li><select class="select" name="myselect" onchange="catalog_rebuild(this.value)">
<option>-Выбрать-</option>
<option value="0" <?if($OTHER2_VAL$ = '1280x')?>selected<?endif?>>1280x</option>
<option value="1" <?if($OTHER2_VAL$ = '640x')?>selected<?endif?>>640x</option>
</select>
<span style="display:none;">$OTHER2_FL$<?endif?>

 <?if($OTHER3_FL$)?>
 <li><label for="other1">$OTHER3_SIGN$:</label>
 <script type="text/javascript"> var descr = new Array(); descr[0] = 'BDRip'; descr[1] = 'HDRip'; descr[2] = 'HDDVDRip'; descr[3] = 'WEB-DLRip'; descr[4] = 'HDTVRip'; descr[5] = 'DVDRip'; descr[6] = 'SATRip'; descr[7] = 'TVRip'; descr[8] = 'VHSRip'; function catalog_rebuild(x) { $("#input_extrafl3").val(descr[x]); } </script>
<li><select class="select" name="myselect" onchange="catalog_rebuild(this.value)">
<option>-Выбрать-</option>
<option value="0" <?if($OTHER3_VAL$ = 'BDRip')?>selected<?endif?>>BDRip</option>
<option value="1" <?if($OTHER3_VAL$ = 'HDRip')?>selected<?endif?>>HDRip</option>
<option value="2" <?if($OTHER3_VAL$ = 'HDDVDRip')?>selected<?endif?>>HDDVDRip</option>
<option value="3" <?if($OTHER3_VAL$ = 'WEB-DLRip')?>selected<?endif?>>WEB-DLRip</option>
<option value="4" <?if($OTHER3_VAL$ = 'HDTVRip')?>selected<?endif?>>HDTVRip</option>
<option value="5" <?if($OTHER3_VAL$ = 'DVDRip')?>selected<?endif?>>DVDRip</option>
<option value="6" <?if($OTHER3_VAL$ = 'SATRip')?>selected<?endif?>>SATRip</option>
<option value="7" <?if($OTHER3_VAL$ = 'TVRip')?>selected<?endif?>>TVRip</option>
<option value="8" <?if($OTHER3_VAL$ = 'VHSRip')?>selected<?endif?>>VHSRip</option>
</select>
<span style="display:none;">$OTHER3_FL$<?endif?>

DirtyDog,
Вот это onchange="catalog_rebuild(this.value)" надо переименовать, например catalog_rebuild1(this.value) для второго фильтра написать catalog_rebuild2(this.value) и т.д, соответсвенно переименовать  function catalog_rebuild1(x) и т.д
...