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

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

Заменить checkbox на button в модуле mod_jshopping_filters

 (Прочитано 1149 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ragivort
Живу я здесь
******

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

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


Есть мечта-стоит жить


« : 23.10.2012, 11:28:41 »

Люди, привет, как в модуле mod_jshopping_filters заменить чекбоксы на кнопки, чтобы не галочки ставить, а кнопку нажал и фильтр сработал, замена checkbox на button не помогает.
Записан
dmitry_stas
Профи
********

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

Сообщений: 7774



« Ответ #1 : 23.10.2012, 12:50:41 »

конечно не помогает, ибо нужен input в форме, чтобы передать какое то значение. более того, помимо передачи значения его ж нужно как то хранить как текущее выбранное. можно попробовать сделать скрытые инпуты, а кнопками в них менять значения, и после этого отправлять форму
Записан
Ragivort
Живу я здесь
******

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

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


Есть мечта-стоит жить


« Ответ #2 : 23.10.2012, 13:40:54 »

Попробую
Записан
Ragivort
Живу я здесь
******

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

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


Есть мечта-стоит жить


« Ответ #3 : 24.10.2012, 16:06:16 »

Дк я про <input type="button"
ЧТобы не чекбоксы были а кнопки
там такой код -
Код:
    <?php if (is_array($characteristic_displayfields) && count($characteristic_displayfields)){?>
   
        <div class="filter_characteristic">
        <?php foreach($characteristic_displayfields as $ch_id){?>   
            <?php if (is_array($characteristic_fieldvalues[$ch_id])){?>
                 <input type="hidden" name="extra_fields[<?php print $ch_id?>][]" value="0" />           
                <?php foreach($characteristic_fieldvalues[$ch_id] as $val_id=>$val_name){?>
                    <input type="checkbox" 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();" /> <?php print $val_name;?>
                <?php }?>
         
            <?php }?>
        <?php }?>
        </div>
    <?php } ?>

Просто замена checkbox на button не помогает.
это в модуле mod_jshopping_filters
Записан
dmitry_stas
Профи
********

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

Сообщений: 7774



« Ответ #4 : 24.10.2012, 22:24:50 »

не совсем точно выразился. нужен инпут, значение которого способно передаваться в обработчик формы. button этого не умеет. так что либо скрытые инпуты, либо можно попробовать еще сделать кнопки не button, а input type=submit, так как value у submit передается, если задан name. это правда повлечет другие сложности, но можно попытаться
Записан
flychild
Новичок
*

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

Сообщений: 1


« Ответ #5 : 26.10.2012, 13:37:28 »

Люди, привет, как в модуле mod_jshopping_filters заменить чекбоксы на кнопки, чтобы не галочки ставить, а кнопку нажал и фильтр сработал, замена checkbox на button не помогает.

Конечно можно.. jquery +css. все работает http://followdesign.com/development/2011/11/28/oformlenie-knopok-chekboksov-i-drugih-elementov-interfeysa.html
Записан
stparts
Осваиваюсь на форуме
***

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

Сообщений: 87


« Ответ #6 : 25.08.2016, 22:06:41 »

Понимаю что тема старая, но может кому-то поможет.
Нужно заменить код
Код:
<input type="checkbox" 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();" /> <?php print $val_name;?><br/>
на
Код:
<button name="extra_fields[<?php print $ch_id?>][]" value="<?php print $val_id;?>" onclick="document.jshop_filters.submit();"><?php print $val_name;?></button>

Это для характеристик. Если нужно для производителя, то так же, только изменив параметры по примеру.
Записан
stparts
Осваиваюсь на форуме
***

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

Сообщений: 87


« Ответ #7 : 26.08.2016, 23:15:58 »

Теперь и я застрял. Подскажите, нужно заставить кнопку быть активной, при выборе нужной характеристики.
Для чекбокса код <?php if (is_array($extra_fields_active[$ch_id]) && in_array($val_id, $extra_fields_active[$ch_id])) print "checked";?>  я убрал, т.к. он не нужен для button.
Нужно изменить класс кнопки когда активна нужная характеристика.
Решил сделать это скриптом. Добавил в начале файла modules/mod_jshopping_filters/tmpl/default.php , сразу после стандартного скрипта, ещё один скрипт.
Код:
<script type="text/javascript">
$(document).ready(function() {
$("#jshop_filters").on("click", ".jfilter_chek", function(){
   $(this).toggleClass("active");
});
}
</script>

Предварительно обернув button в <span class="jfilter_chek">. Скрипт должен добавлять к классу active.
Но потом понял, что работать и не будет, ведь страница обновляется.

Подскажите, ещё вариант задать другой класс кнопке активного элемента.
« Последнее редактирование: 26.08.2016, 23:25:38 от stparts » Записан
dmitry_stas
Профи
********

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

Сообщений: 7774



« Ответ #8 : 27.08.2016, 09:05:01 »

я вот не могу понять... зачем надо выдумывать велосипед с этими кнопками вместо того, чтобы чекбокс на CSS сделать в виде кнопки и все
Записан
stparts
Осваиваюсь на форуме
***

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

Сообщений: 87


« Ответ #9 : 29.08.2016, 21:43:50 »

Действительно, скрытым чекбоксом и CSS всё сделать проще.
Меняем
Код:
<input type="checkbox" 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();" /> <?php print $val_name;?><br/>

на
Код:
<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>

в CSS прописываем стили и всё работает.
Код:
.button_checkbox  input[type="checkbox"] + span {
  background: #df4040;
  color: #fff;
  text-shadow: none;
  padding: 8px 20px;
  font-size: 88%;
  display: inline-block;
  vertical-align: top;
  border: none;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}


.button_checkbox  input[type="checkbox"]:checked + span {
  background: #515151;
  color: #fff;
  text-shadow: none;
  padding: 8px 20px;
  font-size: 88%;
  display: inline-block;
  vertical-align: top;
  border: none;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
}
Записан
Страниц: [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