Как выбрать активный идентификатор цвета из списка доступных идентификаторов цвета

#javascript #php #jquery #ajax #codeigniter

Вопрос:

я хочу выбрать идентификатор цвета активного цвета, например, предположим, что у меня есть три цвета: желтый, синий, красный. По умолчанию первый цвет-желтый, поэтому я получаю идентификатор желтого цвета, используя «скрытый тип ввода». но когда мы нажимаем на синий цвет, то активный цвет будет синим, поэтому мне нужен идентификатор синего цвета, а если я нажму на красный, то идентификатор красного цвета. мне нужен идентификатор активного цвета, чтобы получить идентификатор этого активного цвета. вот мой код

  <p class="product-color"> Color :                     
  <?php foreach($avlcolers as $colors){ ?>
   <button type="button" title="<?php echo $colors['color_name']; ?>" id="btn2" onclick="variationchange(<?php echo $colors['color_id'] ; ?>)" style="background:<?php echo $colors['color_value']; ?>;padding:12px;border: 1px solid #ccc;border-radius: 50%;border:1px solid #ccc; color: white; width: 40px; height:40px;" value="5" class="color-btn"></button>
   <?php    } ?>                            
 </p> 
 

когда я пытаюсь получить color_id, например, используя код ниже в коде выше

  <input type="hidden" id="color_id" value="<?php echo $colors['color_id'] ; ?>" >
 

я получаю color_id только первого цвета.
Есть ли какой-либо способ получить идентификатор цвета текущего цвета.

Ответ №1:

Используйте атрибут jQuery data-id, как показано на рисунке:

 <p class="product-color"> Color :                     
  <?php foreach($avlcolers as $colors){ ?>
   <button type="button" title="<?php echo $colors['color_name']; ?>" class="btn-colors" data-id="<?php echo $colors['color_id'];?>" style="background:<?php echo $colors['color_value']; ?>;padding:12px;border: 1px solid #ccc;border-radius: 50%;border:1px solid #ccc; color: white; width: 40px; height:40px;" value="5" class="color-btn"></button>
   <?php    } ?>                            
 </p> 

 

Затем добавьте событие нажатия кнопки для цветных кнопок(в зависимости от класса).

 <script>
  $('.btn-colors').click(function(){
       var colorID = (this).attr('data-id');
       // then set the value of colo id field to the above id
       ("#color_id").val(colorID);
  });
</script>
 

Комментарии:

1. Это не работает. На самом деле мы должны сначала определить активную кнопку. Как и по умолчанию, первый цвет (желтый) активен, поэтому мы получаем идентификатор первого цвета, затем нажимаем на цвет, предположим, красный, тогда активный цвет красный, мы должны получить идентификатор красного цвета и так далее для нескольких цветов. Ваш код будет указывать только первый идентификатор цвета. В любом случае, спасибо за усилия, сэр.