De5pro Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 (изменено) Имеется вот такой код JS function changeColor(){ var sizes = $('#color option:selected').attr('rel-size').split(','); $('#size option').hide(); $('#size option').each(function () { if($.inArray($(this).val(), sizes) != -1) { $(this).show(); } }); $('#size option').attr('selected', ''); $('#size option:visible:first').attr('selected', 'selected'); И код HTML {if $product->colors|count > 1} <tr{if $product->variants|count<2} style="display:none;"{/if}> <td>Цвета:</td> <td> <select id="color"> {foreach $product->colors as $k=>$v}{if $k!=''}<option rel-size="{','|join:$v}" rel-image="{$product->image_ids[$k]}">{$k}</option>{/if}{/foreach} </select> </td> </tr> {/if} <tr{if $product->variants|count<2} style="display:none;"{/if}> <td>Размеры:</td> <td> <select id="size" name="variant"> {foreach $product->variants as $v}<option value="{$v->id}">{$v->name}</option>{/foreach} </select> </td> </tr> Функционал JS:При выборе цвета во втором селекторе появляется размер(Без дублей) привязанный к цвету .Помогите пожалуйста переписать код JS под "радиокнопку".Только , что бы при выборе размера появлялся цвет.И не было дублей .Пытался таким JS: $(function() { $(".variants li").live("click", function(){ variant = $(this).find('input').data('id'); color = $(this).find('input').data('color'); $('label.color').html(color); }); }); HTML: <form class="variants" action="/cart"> <a>Размер:</a> {foreach $product->variants as $v} <div class="lol"> <ul> <li> <input id="product_{$v->id}" data-color="$v=>color" data-id="{$v->id}" name="variant" value="{$v->id}" type="radio"/>{if $v->name}<label for="product_{$v->id}"></label>{/if} </li> </ul> </div> {/foreach} <a>Цвет:</a> {foreach $product->colors as $k=>$v} {if $k!=''} <div class="lol"> <ul> <li> <input id="product_{$v->id}" name="variant" value="{$v->id}" type="radio"/>{if $v->name}<label class="color" for="product_{$v->id}"></label>{/if} </li> </ul> </div> {/if} {/foreach} Пытался сам но не работает .Купить готовое возможности нету .Помогите кто чем сможет . Изменено 10 октября, 2015 пользователем De5pro Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Купить готовое возможности нету . Да кому Вы врете?В таком случае стоит полагать что вам и магазин нечем содержать.Напрашивается вопрос: на кой черт Вам тот магазин тогда?Денег у него нет... Во пошел народ офигевший. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Пытался сам но не работает .Купить готовое возможности нету .Помогите кто чем сможет .В этом местеdata-color="$v=>color"у Вас в миниатюрном тексте внутри кавычек аж две ошибки... В давние детские годы была популярной острота "Подайте слепому на телевизор"... Цитата Ссылка на сообщение Поделиться на другие сайты
De5pro Опубликовано 10 октября, 2015 Автор Жалоба Поделиться Опубликовано 10 октября, 2015 Да кому Вы врете?В таком случае стоит полагать что вам и магазин нечем содержать.Напрашивается вопрос: на кой черт Вам тот магазин тогда?Денег у него нет... Во пошел народ офигевший.Этот сайт я делаю не для себя . Прежде чем утверждать подавите в себе закомплексованность скрытаю , подумайте потом пишите . А вы уже заглянули в мой кошелек ? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 А вы уже заглянули в мой кошелек ?Мне ну нужно этого делать, о своем недостатке средств Вы сообщили сами, вот цитирую:Этот сайт я делаю не для себя . Если Вы сайт делаете не для себя значит кто-то Вам за сайт заплатит, если не заплатит то Вы скорее всего чей-то раб (фигурально) работающий за еду. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Пытался сам но не работает .Купить готовое возможности нету .Помогите кто чем сможет . этот участок кода data-color="$v=>color" нужно заменить на data-color="{$v->color}" и смотреть дальше есть ли ошибки. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Сразу бросается в глаза, что$('label.color').html(color);явно не даст правильного результатат, так как изменит НЕСКОЛЬКО текстов у всех радиокнопок цвета. И у самих радиокнопок вначале HTML формируется странно, без подписей. Может, конечно, подписи потом формирует неуказанный JS-скрипт, но это маловероятно... Полагаю, на этом ошибки не кончатся... Похоже, ТС где-то что-то скопировал и отредактировал методом тыка без особого понятия... mishanya имеет в данной теме широкий фронт работ по исправлению... Цитата Ссылка на сообщение Поделиться на другие сайты
Consult Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Да кому Вы врете?В таком случае стоит полагать что вам и магазин нечем содержать.Напрашивается вопрос: на кой черт Вам тот магазин тогда?Денег у него нет... Во пошел народ офигевший.Запарили своей желчью.Не нравится? Проходите мимо, епт. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 октября, 2015 Жалоба Поделиться Опубликовано 10 октября, 2015 Запарили своей желчью.Не нравится? Проходите мимо, епт.Тебя это абсолютно не касается, проходи сам мимо, идиот. Цитата Ссылка на сообщение Поделиться на другие сайты
De5pro Опубликовано 11 октября, 2015 Автор Жалоба Поделиться Опубликовано 11 октября, 2015 Мне ну нужно этого делать, о своем недостатке средств Вы сообщили сами, вот цитирую: Если Вы сайт делаете не для себя значит кто-то Вам за сайт заплатит, если не заплатит то Вы скорее всего чей-то раб (фигурально) работающий за еду.И опять не угодали . Цитата Ссылка на сообщение Поделиться на другие сайты
seez Опубликовано 5 ноября, 2015 Жалоба Поделиться Опубликовано 5 ноября, 2015 1. Добавляем новое поле в таблицу s_variants ALTER TABLE `s_variants` ADD `size` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL AFTER `name` 2. Правим simpla\design\html\protuct.tpl Перед <li class="variant_sku">Артикул</li> вставляем <li class="variant_sku">Размер</li> ниже перед <li class="variant_sku"> <input name="variants[sku][]" type="text" value="{$variant->sku|escape}" /></li> вставляем <li class="variant_sku"> <input name="variants[]" type="text" value="{$variant->size|escape}" /></li> еще ниже перед <li class="variant_sku"><input name="variants[sku][]" type="" value="" /></li> вставляем <li class="variant_sku"><input name="variants[]" type="" value="" /></li> 3. Правим api\Variants.php Находим $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment, v.position меняем $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.size, v.attachment, v.position ниже находим $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.attachment меняем $query = $this->db->placehold("SELECT v.id, v.product_id , v.price, NULLIF(v.compare_price, 0) as compare_price, v.sku, IFNULL(v.stock, ?) as stock, (v.stock IS NULL) as infinity, v.name, v.size, v.attachment 4. Правим design\ваша тема\product.tpl после {if $product->variants|count > 0} вставляем {if $product->variant->size} <div class="variant_special_list"> <script type="text/javascript"> {literal} $(document).ready(function(){ $("#nap_select").change(function () { var napr_selected = $("#nap_select option:selected").val(); sizer_selected = $("#size_select option:selected").val(); datar = napr_selected+sizer_selected; $('.variant_radiobutton').attr('checked',false); $('#size_select option').removeClass('deactive'); $('#size_select option').each(function(n){ var size_not = $(this).attr('data-color'); if(napr_selected !== size_not){ $(this).addClass('deactive'); }else{ $("#size_select").prepend("<option selected='selected'>Выберите размер</option>"); $('.variants .button').attr('disabled', true); $('.select_varian').text('Выберите размер'); $('.select_price').text(' '); } }); }); }); {/literal} </script> <script type="text/javascript"> {literal} $(document).ready(function(){ $("#size_select").change(function () { var nap_selected = $("#nap_select option:selected").val(); size_selected = $("#size_select option:selected").val(); price_selected = $("#nap_select option:selected").attr("data-price"); data = nap_selected+size_selected; $('.variant_radiobutton[data-rel=+ data +]').attr('checked',true); $('.variants .button').attr('disabled', false); $('.select_varian').text(nap_selected +', размер '+size_selected); $('.select_price').text(price_selected); }); }); {/literal} </script> <ul class="list_variants"> <li class="napolnitel"> <select id="nap_select"> {foreach $product->variants as $v} <option value="{$v->name}" data-price="{$v->price|convert} {$currency->sign|escape}">{$v->name}</option> {/foreach} </select> </li> <li class="size"> <select id="size_select"> {foreach $product->variants as $v} <option value="{$v->size}" data-color="{$v->name}">{$v->size}</option> {/foreach} </select> </li> <li><span class="select_varian">{$product->variant->name}, размер {$product->variant->size}</span> <span class="select_price">{$product->variant->price|convert} {$currency->sign|escape}</span></li> </ul> </div> {else} <div class="variant_special_list"> <script type="text/javascript"> {literal} $(document).ready(function(){ $("#nap_select").change(function () { var nap_selected = $("#nap_select option:selected").val(); price_selected = $("#nap_select option:selected").attr("data-price"); $('.variant_radiobutton[data-color=+ nap_selected +]').attr('checked',true); $('.select_varian').text(nap_selected); $('.select_price').text(price_selected); }); }); {/literal} </script> <ul class="list_variants"> <li class="napolnitel"> <select id="nap_select"> {foreach $product->variants as $v} <option value="{$v->name}" data-price="{$v->price|convert} {$currency->sign|escape}">{$v->name}</option> {/foreach} </select> </li> <li> <span class="select_varian">{$product->variant->name}</span> <span class="select_price">{$product->variant->price|convert} {$currency->sign|escape}</span> </li> </ul> </div> {/if} 5. Правим design\css\style.css в самый низ добавляем строки #size_select option.deactive{ display: none; } .product form.variants table{ display: none; } 6. Правим api\Orders.php после if(!isset($purchase->variant_name) && !empty($variant)) $purchase->variant_name = $variant->name; добавляем if(!isset($purchase->size) && !empty($variant)) $purchase->size = $variant->size; 7. Правим design\ваша тема\cart.tpl находим {* Название товара *} <td class="name"> <a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a> {$purchase->variant->name|escape} </td> заменяем {* Название товара *} <td class="name"> <a href="products/{$purchase->product->url}">{$purchase->product->name|escape}</a> Цвет {$purchase->variant->name|escape}{if $purchase->variant->size}, размер {$purchase->variant->size}{/if} </td> Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 18 ноября, 2015 Жалоба Поделиться Опубликовано 18 ноября, 2015 Пишите в личку фрилансерам, кто поможет. 1. Публикация чьего-то "платного" кода в паблик карается баном - читайте правила.2. След. раз оформляйте код в специальный тег. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 18 ноября, 2015 Жалоба Поделиться Опубликовано 18 ноября, 2015 Совет припозднился - ТС уже месяц не отмечался на форуме... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.