Форум русской поддержки Joomla!® CMS
05.12.2016, 08:32:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Показать/скрыть характеристики в фильтре

 (Прочитано 98 раз)
0 Пользователей и 1 Гость смотрят эту тему.
stparts
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 87


« : 10.11.2016, 22:45:19 »

Помогите реализовать показ фильтра характеристик по кнопке. Что-бы параметры фильтра были скрыты пока не раскроешь один из нужных фильтров.
Скрыть мне их удалось, но при раскрытии любой из них, у меня отображается всегда первая характеристика, остальные не отображаются.
Что я сделал:
Добавил в шаблон скрипт
Код:
<script type="text/javascript">
               function showHide(element_id) {
                
                if (document.getElementById(element_id)) {
                    
                    var obj = document.getElementById(element_id);
                  
                    if (obj.style.display != "block") {
                        obj.style.display = "block";
                    }
                    else obj.style.display = "none";
                }
                
                else alert("Элемент с id: " + element_id + " не найден!");
            }  
        </script>

Вот так выглядит код отвечающий за характеристики в фильтре.
Код:
<div class="filter_characteristic">
        <?php foreach($characteristic_displayfields as $ch_id){?>  
            <?php if (is_array($characteristic_fieldvalues[$ch_id])){?>
        
<a href="javascript:void(0)" onclick="showHide('characteristic_name')"><?php print $characteristic_fields[$ch_id]->name;?><br/><br/>
        <div id="characteristic_name" style="display: none;">
                 <div class="characteristic_name"><?php print $characteristic_fields[$ch_id]->name;?></div>
                <input type="hidden" name="extra_fields[<?php print $ch_id?>][]" value="0" />            
                <?php foreach($characteristic_fieldvalues[$ch_id] as $val_id=>$val_name){?>
                     <label><span class="button_checkbox"><input type="checkbox" hidden name="extra_fields[<?php print $ch_id?>][]" value="<?php print $val_id;?>" <?php if (is_array($extra_fields_active[$ch_id]) && in_array($val_id, $extra_fields_active[$ch_id])) print "checked";?> onclick="document.jshop_filters.submit();" /> <span><?php print $val_name;?></span></span></label>



                <?php }?>
            <br/></div>
            <?php }?>
        <?php }?>
        </div></div>
За скрытие блока отвечает
<a href="javascript:void(0)" onclick="showHide('characteristic_name')"><?php print $characteristic_fields[$ch_id]->name;?><br/><br/>
        <div id="characteristic_name" style="display: none;">


При просмотре в фаербаге видно, что под каждым спойлером скрыт необходимый кусок кода, но отображается не то пальто.
Пример работы на http://авто-формула.рф/магазин/моторные-масла
Записан
Serg_
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Пол: Мужской
Сообщений: 111


« Ответ #1 : 11.11.2016, 01:14:54 »

Что-то Вы наворотили.
Все блоки с характеристиками имеют одинаковый id
Код:
<div [b]id="characteristic_name"[/b] style="display: none;">
Дальше даже не смотрел.
На сайте подключается бутстрап. Используйте collapse

вот пример http://www.w3schools.com/Bootstrap/bootstrap_collapse.asp
Записан
stparts
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 87


« Ответ #2 : 11.11.2016, 20:29:35 »

collapse делает то же самое

Цитировать
<div class="filter_characteristic">
        <?php foreach($characteristic_displayfields as $ch_id){?>   
            <?php if (is_array($characteristic_fieldvalues[$ch_id])){?>
        <a href="#demo" data-toggle="collapse"><?php print $characteristic_fields[$ch_id]->name;?></a>
           <div id="demo" class="collapse">
                 <div class="characteristic_name"><?php print $characteristic_fields[$ch_id]->name;?></div>
                <input type="hidden" name="extra_fields[<?php print $ch_id?>][]" value="0" />           
                <?php foreach($characteristic_fieldvalues[$ch_id] as $val_id=>$val_name){?>
                     <label><span class="button_checkbox"><input type="checkbox" hidden name="extra_fields[<?php print $ch_id?>][]" value="<?php print $val_id;?>" <?php if (is_array($extra_fields_active[$ch_id]) && in_array($val_id, $extra_fields_active[$ch_id])) print "checked";?> onclick="document.jshop_filters.submit();" /> <span><?php print $val_name;?></span></span></label>


                <?php }?>
            <br/></div>
            <?php }?>
        <?php }?>
        </div>
Записан
Serg_
Осваиваюсь на форуме
***

Репутация: +16/-0
Offline Offline

Пол: Мужской
Сообщений: 111


« Ответ #3 : 11.11.2016, 20:42:59 »

у вас в цикле формируются ссылки с одинаковым id
только если раньше это было
Код:
<div id="characteristic_name" style="display: none;">
то теперь
Код:
<div id="demo" class="collapse">
сделайте в цикле разные id и будет работать
Записан
nevigen
Moderator
*****

Репутация: +734/-16
Offline Offline

Пол: Мужской
Сообщений: 8803


http://n*****n.com


« Ответ #4 : 11.11.2016, 21:50:09 »

добавляйте в конец каждого ИД, например вывод ИД характеристики. как для блока так и для функции тугла.
Записан
stparts
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 87


« Ответ #5 : 22.11.2016, 21:17:56 »

Может кто-то готов помочь за определённое вознаграждение?
Моих знаний не достаточно.
Записан
nevigen
Moderator
*****

Репутация: +734/-16
Offline Offline

Пол: Мужской
Сообщений: 8803


http://n*****n.com


« Ответ #6 : 22.11.2016, 23:48:08 »

<div id="caharct_<?php echo $ch_id?>" class="collapse">
....
</div>

по идее блоки будут уникальны.
есно и открывать их теперь надо по такому же ИД.
Записан
stparts
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 87


« Ответ #7 : 23.11.2016, 20:53:00 »

Большое спасибо. Заработало)))
Код:
<a href="#demo<? echo $ch_id ?>" data-toggle="collapse"><?php print $characteristic_fields[$ch_id]->name;?></a>
           <div id="demo<? echo $ch_id ?>" class="collapse">
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet