Преобразование выпадающего списка выбора в переключатели, которые требуют выбора - PullRequest
0 голосов
/ 27 ноября 2009

Я использую систему электронной коммерции, которая позволяет вам иметь несколько вариантов для каждого продукта - (например: большие, средние, маленькие футболки). Тем не менее, у нас есть жалобы от клиентов, которые добавляют футболку и игнорируют изменения. В результате многие крупные люди получают маленькие футболки (по умолчанию). Чтобы решить эту проблему, я бы хотел, чтобы пользователь выбрал переключатель (вместо выпадающего списка выбора), и только тогда кнопка «Добавить в корзину» станет доступной. Вот текущий php, который отображает выпадающий список;

<?php while (have_variation_groups()) : the_variation_group(); ?>
  <?php /** variation HTML and loop */?>
  <select class='select_variation' name="variation[<?php echo variation_id(); ?>]" id="<?php echo variation_group_form_id(); ?>">
  <?php while (have_variations()) : the_variation(); ?>
     <option value="<?php echo the_variation_id(); ?>"><?php echo the_variation_name(); ?></option>
   <?php endwhile; ?>
</select> 
<?php endwhile; ?>
<?php echo add_to_cart_button(the_product_id()); ?>

Который выплевывает этот вид HTML ...

<select class='select_variation' name="variation[1]" id="variation_select_22_1">
<option value="1">Small</option>
<option value="2">Big</option>
</select> 
<input type='submit' id='product_22_submit_button' class='buy_button' name='Buy'  value="Add To Cart" />

Как бы вы посоветовали мне преобразовать раскрывающийся список в радиокнопку и убедиться, что кнопка добавления в корзину не активируется, пока не будет выбран вариант? Спасибо

Ответы [ 2 ]

2 голосов
/ 27 ноября 2009

Почему бы не добавить параметр по умолчанию со значением 0 и текстом "Пожалуйста, выберите размер"?

1 голос
/ 27 ноября 2009

Я не разработчик PHP, поэтому извините заранее, если я разделываю язык ...

Это даст вам список переключателей:

<?php while (have_variation_groups()) : the_variation_group(); ?>
  <?php /** variation HTML and loop */?>
  <ul class='select_variation' name="variation[<?php echo variation_id(); ?>]" id="<?php echo variation_group_form_id(); ?>">
  <?php while (have_variations()) : the_variation(); ?>
     <li><input type="radio" name="variation[<?php echo variation_id(); ?>]" value="<?php echo the_variation_id(); ?>"/><?php echo the_variation_name(); ?></li>
   <?php endwhile; ?>
</ul>
<?php endwhile; ?>
<?php echo add_to_cart_button(the_product_id()); ?>

Что, надеюсь, даст вам что-то вроде этого:

<ul class='select_variation' name="variation[1]" id="variation_select_22_1">
<li><input type="radio" name="variation[1]" value="1" />Small</li>
<li><input type="radio" name="variation[1]" value="2" />Big</li>
</ul> 
<input type='submit' id='product_22_submit_button' class='buy_button' name='Buy'  value="Add To Cart" />

Затем вы можете использовать JQuery для включения кнопки при нажатии одной из опций:

$(function()
{
    $('.buy_button').attr('disabled', 'true');

    $('ul li input').click(function()
    {
        $('.buy_button').removeAttr('disabled');
    });
});

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

...