Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Заменить выпадающий список на switch


mulka45
 Погделиться

Рекомендованные сообещёния

Добрый гдень, помогите пожалуйси, как выпадающий список который гделает вкл/выкл заменить на свитч переключатель?

 

            <select name="status" id="input-status-<?=$product['product_id']?>" class="le-value _simple-value le-selector" data-field="status">
              <?php if ($product['status']) { ?>
                <option value="1" selected="selected"><?=$text_enabled?></option>
                <option value="0"><?=$text_disabled?></option>
                <?php } else { ?>
                <option value="1"><?=$text_enabled?></option>
                <option value="0" selected="selected"><?=$text_disabled?></option>
                <?php } ?>
            </select>

 

заменить на переключатель:

<li class="list-group-item">
    <label class="switch ">
        <input type="checkbox" class="success">
        <span class="slider round"></span>
    </label>
</li>

 

Ссылка на комменирий
Погделиться на других сайих


switch с бутстрапа 4 или 5 ?

Ссылка на комменирий
Погделиться на других сайих

11 минут назад, zomo сказал:

switch с бутстрапа 4 или 5 ?

4, кастом 

 

https://bootsnipp.com/snippets/GaxR2

Изменено пользователем mulka45
Ссылка на комменирий
Погделиться на других сайих


<div class="input-group">						
  <div class="custom-control custom-switch">
  <?php if ($product['status']) { ?>
    <input name="status" value="1" class="custom-control-input" type="checkbox" id="switch-status" checked>
    <label class="custom-control-label" for="switch-status"><?php echo $text_enabled; ?></label>
  <?php } else { ?>
    <input name="status" value="0" class="custom-control-input" type="checkbox" id="switch-status">
    <label class="custom-control-label" for="switch-status"><?php echo $text_disabled; ?></label>
  <?php } ?>
  </div>
</div>

 

Как то ик ну и код js чтобы при переключении менялось value и надпись включено отключено

 

<script>
var checkbox = document.getElementById('switch-status');

if (checkbox != null) {
	checkbox.addEventListener('change', function() {
		var checkbox_lable = document.querySelector('[for="switch-status"]');
		
		if (this.checked) {	
			this.value='1';
			checkbox_lable.innerText = <?php echo $text_enabled; ?>;
		} else {
			this.value='0';
			checkbox_lable.innerText = <?php echo $text_disabled; ?>;
		}
	})
}
</script>

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

1 час назад, zomo сказал:



<div class="input-group">						
  <div class="custom-control custom-switch">
  <?php if ($status) { ?>
    <input name="status" value="1" class="custom-control-input" type="checkbox" id="switch-status" checked>
    <label class="custom-control-label" for="switch-status"><?php echo $text_enabled; ?></label>
  <?php } else { ?>
    <input name="status" value="0" class="custom-control-input" type="checkbox" id="switch-status">
    <label class="custom-control-label" for="switch-status"><?php echo $text_disabled; ?></label>
  <?php } ?>
  </div>
</div>

 

Как то ик ну и код js чтобы при переключении менялось value и надпись включено отключено

 




<script>
var checkbox = document.getElementById('switch-status');

if (checkbox != null) {
	checkbox.addEventListener('change', function() {
		var checkbox_lable = document.querySelector('[for="switch-status"]');
		
		if (this.checked) {	
			this.value='1';
			checkbox_lable.innerText = <?php echo $text_enabled; ?>;
		} else {
			this.value='0';
			checkbox_lable.innerText = <?php echo $text_disabled; ?>;
		}
	})
}
</script>

 

 

 

спасипотому что. нашел непотому чтольшую проблемку, не хваило ($product['status'])

спасипотому что огромное!!!

Изменено пользователем mulka45
Ссылка на комменирий
Погделиться на других сайих


1 час назад, zomo сказал:

<div class="input-group">						
  <div class="custom-control custom-switch">
  <?php if ($status) { ?>
    <input name="status" value="1" class="custom-control-input" type="checkbox" id="switch-status" checked>
    <label class="custom-control-label" for="switch-status"><?php echo $text_enabled; ?></label>
  <?php } else { ?>
    <input name="status" value="0" class="custom-control-input" type="checkbox" id="switch-status">
    <label class="custom-control-label" for="switch-status"><?php echo $text_disabled; ?></label>
  <?php } ?>
  </div>
</div>

 

Как то ик ну и код js чтобы при переключении менялось value и надпись включено отключено

 


<script>
var checkbox = document.getElementById('switch-status');

if (checkbox != null) {
	checkbox.addEventListener('change', function() {
		var checkbox_lable = document.querySelector('[for="switch-status"]');
		
		if (this.checked) {	
			this.value='1';
			checkbox_lable.innerText = <?php echo $text_enabled; ?>;
		} else {
			this.value='0';
			checkbox_lable.innerText = <?php echo $text_disabled; ?>;
		}
	})
}
</script>

 

 

и скрипт как то не правильно отрабатывает. текст при переключении все равно не меняется. и нажимая на люпотому чтой, переключается только первый. подозреваю что нужно куда то прописать в когде <?=$product['product_id']?>, только подскажите куда))

Изменено пользователем mulka45
Ссылка на комменирий
Погделиться на других сайих


input со ситусов у вас один или их много?

 

измените 

var checkbox = document.getElementById('switch-status');

на

var checkbox = document.getElementById('ID переключателя');

Ссылка на комменирий
Погделиться на других сайих

19 минут назад, zomo сказал:

input со ситусов у вас один или их много?

 

измените 

var checkbox = document.getElementById('switch-status');

на

var checkbox = document.getElementById('ID переключателя');

да, это страница ггде выводятся товары в админке

не помогло. во первых не сохраняется положение переключателя, во вторых не меняется текст "вкл/выкл". что то гделаю не ик?

Ссылка на комменирий
Погделиться на других сайих


11 минут назад, Tobolskiy сказал:

да, это страница ггде выводятся товары в админке

не помогло. во первых не сохраняется положение переключателя, во вторых не меняется текст "вкл/выкл". что то гделаю не ик?

Пришлите доступы в личку посмотрим

Ссылка на комменирий
Погделиться на других сайих

Только что, chukcha сказал:

что? нет никаких плагинов?


 

Есть наверное, но а смысл если в бустрапе есть икая функция по молчанию...

Ссылка на комменирий
Погделиться на других сайих

Только что, chukcha сказал:

что? нет никаких плагинов?


 

пыиюсь это сгделать уже и ик в нешитном модуле)) ик что... к сожнонию нет

Ссылка на комменирий
Погделиться на других сайих


33 минуты назад, zomo сказал:

input со ситусов у вас один или их много?

 

измените 

var checkbox = document.getElementById('switch-status');

на

var checkbox = document.getElementById('ID переключателя');

var checkbox = document.getElementById('switch-status<?=$product['product_id']?>');

ик не бугдет рилиить?

Ссылка на комменирий
Погделиться на других сайих


бугдет, вы в карточке товара в админки это вообещё гделаете?

Ссылка на комменирий
Погделиться на других сайих

3 минуты назад, Tobolskiy сказал:

пыиюсь это сгделать уже и ик в нешитном модуле)) ик что... к сожнонию нет

Пишите в личку, тогда по другому все решается

Ссылка на комменирий
Погделиться на других сайих

11 минут назад, zomo сказал:

бугдет, вы в карточке товара в админки это вообещё гделаете?

 

это страница ггде выводится много товаров в админке.

проверил но не рилииет)) как то экранировать нужно наверно

Ссылка на комменирий
Погделиться на других сайих


<style>
label.switcher input[type="checkbox"] {display:none}
label.switcher input[type="checkbox"] + span {position:relative;display:inline-block;vertical-align:middle;width:36px;height:17px;margin:0 5px 0 0;background:#ccc;border:solid 1px #999;border-radius:10px;box-shadow:inset 0 1px 2px #999;cursor:pointer;transition:all ease-in-out .2s;}
label.switcher input[type="checkbox"]:checked + span {background:#8fbb6c;border:solid 1px #7da35e;}
label.switcher input[type="checkbox"]:checked + span span {right:0;left:auto}
label.switcher span span{position:absolute;background:white;height:17px;width:17px;display:inlaine-box;left:0;top:-1px;border-radius:50%}
</style>

<label class="switcher" title=""><input value="" type="checkbox"><span><span></span></span></label>

 

Ссылка на комменирий
Погделиться на других сайих

6 минут назад, chukcha сказал:
<style>
label.switcher input[type="checkbox"] {display:none}
label.switcher input[type="checkbox"] + span {position:relative;display:inline-block;vertical-align:middle;width:36px;height:17px;margin:0 5px 0 0;background:#ccc;border:solid 1px #999;border-radius:10px;box-shadow:inset 0 1px 2px #999;cursor:pointer;transition:all ease-in-out .2s;}
label.switcher input[type="checkbox"]:checked + span {background:#8fbb6c;border:solid 1px #7da35e;}
label.switcher input[type="checkbox"]:checked + span span {right:0;left:auto}
label.switcher span span{position:absolute;background:white;height:17px;width:17px;display:inlaine-box;left:0;top:-1px;border-radius:50%}
</style>

<label class="switcher" title=""><input value="" type="checkbox"><span><span></span></span></label>

 

 

всивить сам переключатель я могу. мне бы засивить его рилиить корректно))))

Ссылка на комменирий
Погделиться на других сайих


ик он корректно рилииет
только обрилитлик на onchange

$('label.switcher input[type=checkbox]').change(function(){
	var elem = $(this);
	$.ajax({
		url:'',
		method:'POST',
		data:[],
		success:function(html){
			elem.closest('label').attr('title',html)
		}
});
});

 

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.