yodaexolon Опубликовано 5 марта, 2014 Жалоба Поделиться Опубликовано 5 марта, 2014 Здравствуйте, помогите Simpla 2.2.4 добавляется 1 шт. все по инструкции код заменен в ajax-cart.js , в product.tpl выпадающий список вставил перед ценой. В product.tpl изменен вывод вариантов товара на выпадающий список Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 6 марта, 2014 Автор Жалоба Поделиться Опубликовано 6 марта, 2014 Здравствуйте, помогите Simpla 2.2.4 добавляется 1 шт. все по инструкции код заменен в ajax-cart.js , в product.tpl выпадающий список вставил перед ценой. В product.tpl изменен вывод вариантов товара на выпадающий списоксписок должен быть вставлен в form с определенным классом, в моем случае variants Цитата Ссылка на сообщение Поделиться на другие сайты
yodaexolon Опубликовано 6 марта, 2014 Жалоба Поделиться Опубликовано 6 марта, 2014 Я еще чайник, можете разжевать? Цитата Ссылка на сообщение Поделиться на другие сайты
yodaexolon Опубликовано 6 марта, 2014 Жалоба Поделиться Опубликовано 6 марта, 2014 Вставил так: <h4>Размер:</h4> <form class="variants" action="/cart"> <select name="variant" {if $product->variants|count==1 && !$product->variant->name}style='display:none;'{/if}> {foreach $product->variants as $v} <option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}"> {$v->name} </option> {/foreach} </select></p> <h4>Количество:</h4><select name="amount" class="amounts"> {section name=amounts start=1 loop=$product->variant->stock+1 step=1} <option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option> {/section} </select></p> <div class="price"> <h4>Цена</h4> <strike> {if $product->variant->compare_price > 0} {$product->variant->compare_price|convert} {/if} </strike> <span>{$product->variant->price|convert}</span> <i>{$currency->sign|escape}</i> </div></p> <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/> </form> Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 6 марта, 2014 Автор Жалоба Поделиться Опубликовано 6 марта, 2014 <h4>Размер:</h4> <form class="variants" action="/cart"> </p> <h4>Количество:</h4></p> <div class="price"> <h4>Цена</h4> <select name="variants" {if $product->variants|count==1 && !$product->variant->name}style='display:none;'{/if}> {foreach $product->variants as $v} <option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}"> {$v->name} </option> {/foreach} </select> <strike> {if $product->variant->compare_price > 0} {$product->variant->compare_price|convert} {/if} </strike> <span>{$product->variant->price|convert}</span> <i>{$currency->sign|escape}</i> </div></p> <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/> </form> Вот так оно должно выглядеть примерно, если я не накосячил ни где, подписи сами подправите Цитата Ссылка на сообщение Поделиться на другие сайты
yodaexolon Опубликовано 6 марта, 2014 Жалоба Поделиться Опубликовано 6 марта, 2014 Извините, все равно не понял, можете вставить куда нужно? {* Страница товара *} <!-- Хлебные крошки /--> <div id="path" xmlns:v="http://rdf.data-vocabulary.org/#"> <span typeof="v:Breadcrumb"> <a href="/" rel="v:url" property="v:title">Главная</a> </span> {foreach from=$category->path item=cat} ? <span typeof="v:Breadcrumb"><a href="catalog/{$cat->url}" rel="v:url" property="v:title">{$cat->name|escape}</a></span> {/foreach} {if $brand} ? <span typeof="v:Breadcrumb"><a href="catalog/{$cat->url}/{$brand->url}" rel="v:url" property="v:title">{$brand->name|escape}</a></span> {/if} ? {$product->name|escape} </div> <!-- Хлебные крошки #End /--> <h1 data-product="{$product->id}">{$product->name|escape}</h1> <span itemscope itemtype="http://data-vocabula...iew-aggregate"> <div class="rating" rel="{$product->id}"> <span class="rater-starsOff"><span style="width:{$product->rating*80/5|string_format:"%.0f"}px" class="rater-starsOn"></span></span> <span class="rater-rating" itemprop="rating">{$product->rating|string_format:"%.1f"}</span> (<span class="rater-rateCount" itemprop="count">{$product->votes|string_format:"%.0f"}</span> {$product->votes|plural:'голос':'голосов':'голоса'}) </div> </span> <div class="product"> <!-- Большое фото --> {if $product->image} <div class="image"> <a href="{$product->image->filename|resize:800:600:w}" class="zoom" data-rel="group"><img src="{$product->image->filename|resize:300:300}" alt="{$product->product->name|escape}" /></a> </div> {/if} <!-- Большое фото (The End)--> Артикул: {$product->variant->sku}</p> {if $product->variants|count > 0} <!-- Выбор варианта товара --> <h4>Размер:</h4> <form class="variants" action="/cart"> <select name="variant" {if $product->variants|count==1 && !$product->variant->name}style='display:none;'{/if}> {foreach $product->variants as $v} <option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}"> {$v->name} </option> {/foreach} </select></p> <div class="price"> <h4>Цена</h4> <strike> {if $product->variant->compare_price > 0} {$product->variant->compare_price|convert} {/if} </strike> <span>{$product->variant->price|convert}</span> <i>{$currency->sign|escape}</i> </div></p> <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/> </form> <!-- Выбор варианта товара (The End) --> {else} Нет в наличии {/if} <!-- Описание товара (The End)--> <!-- Дополнительные фото продукта --> {if $product->images|count>1} <div class="images"> {* cut удаляет первую фотографию, если нужно начать 2-й - пишем cut:2 и тд *} {foreach $product->images|cut as $i=>$image} <a href="{$image->filename|resize:800:600:w}" class="zoom" data-rel="group"><img src="{$image->filename|resize:95:95}" alt="{$product->name|escape}" /></a> {/foreach} </div> {/if} <!-- Дополнительные фото продукта (The End)--> {if $product->features} <!-- Характеристики товара --> <h2>Характеристики</h2> <ul class="features"> {foreach $product->features as $f} <li> <label>{$f->name}</label> <span>{$f->value}</span> </li> {/foreach} </ul> <!-- Характеристики товара (The End)--> {/if} <!-- Описание товара --> <div class="description"> {$product->body} </div> <!-- Соседние товары /--> <div id="back_forward"> {if $prev_product} ? <a class="prev_page_link" href="products/{$prev_product->url}">{$prev_product->name|escape}</a> {/if} {if $next_product} <a class="next_page_link" href="products/{$next_product->url}">{$next_product->name|escape}</a> ? {/if} </div> </div> <!-- Описание товара (The End)--> {* Связанные товары *} {if $related_products} <h2>Так же советуем посмотреть</h2> <!-- Список каталога товаров--> <ul class="tiny_products"> {foreach $related_products as $product} <!-- Товар--> <li class="product"> <!-- Фото товара --> {if $product->image} <div class="image"> <a href="products/{$product->url}"><img src="{$product->image->filename|resize:200:200}" alt="{$product->name|escape}"/></a> </div> {/if} <!-- Фото товара (The End) --> <!-- Название товара --> <h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3> <div class="rating" rel="{$product->id}"> <span class="rater-starsOff"><span style="width:{$product->rating*80/5|string_format:"%.0f"}px" class="rater-starsOn"></span></span> <span class="rater-rating">{$product->rating|string_format:"%.1f"}</span> (<span class="rater-rateCount">{$product->votes|string_format:"%.0f"}</span> {$product->votes|plural:'голос':'голосов':'голоса'}) </div> <!-- Название товара (The End) --> {if $product->variants|count > 0} <!-- Выбор варианта товара --> <h4>Размер</h4> <form class="variants" action="/cart"> <select name="variant" {if $product->variants|count==1 && !$product->variant->name}style='display:none;'{/if}> {foreach $product->variants as $v} <option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}"> {$v->name} </option> {/foreach} </select> <div class="price"> <h4>Цена</h4> <strike> {if $product->variant->compare_price > 0} {$product->variant->compare_price|convert} {/if} </strike> <span>{$product->variant->price|convert}</span> <i>{$currency->sign|escape}</i> </div> <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/> </form> <!-- Выбор варианта товара (The End) --> {else} Нет в наличии {/if} </li> <!-- Товар (The End)--> {/foreach} </ul> {/if} {literal} <script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script> <div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="button" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,gplus" {/literal} ></div> <!-- Комментарии --> <div id="comments"> <h2>Комментарии</h2> {if $comments} <!-- Список с комментариями --> <ul class="comment_list"> {foreach $comments as $comment} <a name="comment_{$comment->id}"></a> <li> <!-- Имя и дата комментария--> {if $comment->visible} <div class="comment_header"> {if $comment->email} <img src="{gravatar email="{$comment->email}" size="40"}"> {else} <img src="design/{$settings->theme|escape}/images/default_gravatar.jpg" height="40" width="40"> {/if} {$comment->name|escape} <i>{$comment->date|date}, {$comment->date|time}</i> {if !$comment->approved}ожидает модерации</b>{/if} </div> <!-- Имя и дата комментария (The End)--> <!-- Комментарий --> {$comment->text|escape|nl2br} <!-- Ответ Администратора--> {if $comment->otvet} <div class="comment_headeradm"> </p><b>Ответ:</b> </div> <div class="comment_otvet"> {$comment->otvet|escape|nl2br} </div> {/if} {/if} <!-- Комментарий (The End)--> </li> {/foreach} </ul> <!-- Список с комментариями (The End)--> {else} <p> Пока нет комментариев </p> {/if} <!--Форма отправления комментария--> <form class="comment_form" method="post"> <h2>Написать комментарий</h2> {if $error} <div class="message_error"> {if $error=='captcha'} Неверно введена капча {elseif $error=='empty_name'} Введите имя {elseif $error=='empty_email'} Введите E-mail {elseif $error=='empty_comment'} Введите комментарий {/if} </div> {/if} <textarea class="comment_textarea" id="comment_text" name="text" data-format=".+" data-notice="Введите комментарий">{$comment_text}</textarea><br /> <div> <label for="comment_name">Имя</label> <input class="input_name" type="text" id="comment_name" name="name" value="{$comment_name|escape}" data-format=".+" data-notice="Введите имя"/><br /> <label for="comment_name">E-Mail</label> <input class="input_name" type="text" id="comment_email" name="email" value="{$comment_email}" data-format=".+" data-notice="Введите E-Mail"/><br /> <input class="button" type="submit" name="comment" value="Отправить" /> <label for="comment_captcha">Число</label> <div class="captcha"><img src="captcha/image.php?{math equation='rand(10,10000)'}" alt='captcha'/></div> <input class="input_captcha" id="comment_captcha" type="text" name="captcha_code" value="" data-format="\d\d\d\d" data-notice="Введите капчу"/> </div> </form> <!--Форма отправления комментария (The End)--> </div> <!-- Комментарии (The End) --> {literal} <script> $(function() { // Раскраска строк характеристик $(".features li:even").addClass('even'); // Зум картинок $("a.zoom").fancybox({ 'hideOnContentClick' : true }); }); </script> {/literal} {literal} <script> $(function() { // Выбор вариантов $('select[name=variant]').change(function() { price = $(this).find('option:selected').attr('price'); compare_price = ''; if(typeof $(this).find('option:selected').attr('compare_price') == 'string') compare_price = $(this).find('option:selected').attr('compare_price'); $(this).find('option:selected').attr('compare_price'); $(this).closest('form').find('span').html(price); $(this).closest('form').find('strike').html(compare_price); return false; }); }); </script> {/literal} Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 6 марта, 2014 Автор Жалоба Поделиться Опубликовано 6 марта, 2014 вот отрывок кода измененный, замените у себя <!-- Выбор варианта товара --> <h4>Размер:</h4> <form class="variants" action="/cart"> <select name="variant" {if $product->variants|count==1 && !$product->variant->name}style='display:none;'{/if}> {foreach $product->variants as $v} <option value="{$v->id}" {if $v->compare_price > 0}compare_price="{$v->compare_price|convert}"{/if} price="{$v->price|convert}"> {$v->name} </option> {/foreach} </select></p> <div class="price"> <h4>Цена</h4> <h4>Количество:</h4><select name="amount" class="amounts"> {section name=amounts start=1 loop=$product->variant->stock+1 step=1} <option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option> {/section} </select> <strike> {if $product->variant->compare_price > 0} {$product->variant->compare_price|convert} {/if} </strike> <span>{$product->variant->price|convert}</span> <i>{$currency->sign|escape}</i> </div></p> <input type="submit" class="button" value="в корзину" data-result-text="добавлено"/> </form> <!-- Выбор варианта товара (The End) --> {else} Нет в наличии {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
yodaexolon Опубликовано 6 марта, 2014 Жалоба Поделиться Опубликовано 6 марта, 2014 все равно добавляется 1 шт Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 7 марта, 2014 Автор Жалоба Поделиться Опубликовано 7 марта, 2014 все равно добавляется 1 штзначит класс скрипта где то не совпадает, скиньте сайт, где не работает Цитата Ссылка на сообщение Поделиться на другие сайты
yodaexolon Опубликовано 7 марта, 2014 Жалоба Поделиться Опубликовано 7 марта, 2014 значит класс скрипта где то не совпадает, скиньте сайт, где не работаетсайт пока на денвере Цитата Ссылка на сообщение Поделиться на другие сайты
sergei5770 Опубликовано 7 марта, 2014 Автор Жалоба Поделиться Опубликовано 7 марта, 2014 сайт пока на денверегде то с классом у вас проблема Цитата Ссылка на сообщение Поделиться на другие сайты
Foх Опубликовано 8 апреля, 2014 Жалоба Поделиться Опубликовано 8 апреля, 2014 где то с классом у вас проблемав чем может быть проблема?)вставляю на одном сайте на дефолтном шабе ,все работает)ставлю на свой сайт)заместо выпадающего списка все цифры вряд идут)вообщем селект не работает)в чем может быть беда?) Цитата Ссылка на сообщение Поделиться на другие сайты
dms32 Опубликовано 21 апреля, 2014 Жалоба Поделиться Опубликовано 21 апреля, 2014 Добрый день.Подскажите пожалуйста, а как сделать что бы был не выпадающих список, а поле где можно самому проставить кол-во (в том числе дробное) Цитата Ссылка на сообщение Поделиться на другие сайты
dms32 Опубликовано 22 апреля, 2014 Жалоба Поделиться Опубликовано 22 апреля, 2014 Большое спасибо, вроде помоглоБез дробного значения наверно можно обойтись, ведь не все в "штуках" торгуют. Мне надо на метраж... Цитата Ссылка на сообщение Поделиться на другие сайты
qu0dez Опубликовано 30 апреля, 2014 Жалоба Поделиться Опубликовано 30 апреля, 2014 Добрый день,А как реализовать это для такой формы ? <div style="margin-left:24px;"> <input type="button" class="minus" value="-"/> <input type="text" class="text1" id="man" value="1"/> <input type="button" class="plus" value="+"/> <input type="submit" class="button2" value=" " data-result-text=""/> </div> Заранее спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
Yu.Ka. Опубликовано 7 октября, 2014 Жалоба Поделиться Опубликовано 7 октября, 2014 Добавил, все рабоатает, единственная проблема, в товарах с несколькими вариантами добавляется количество первого варианта. Вот например ссылка . Сталкивался кот нибудь с таким? Все решил проблему ) Цитата Ссылка на сообщение Поделиться на другие сайты
Slip Опубликовано 27 февраля, 2015 Жалоба Поделиться Опубликовано 27 февраля, 2015 Помогите пожалуйста. У меня Аякс корзина не стандартная, код такой: // Аяксовая корзина $('form.variants').live('submit', function(e) { e.preventDefault(); button = $(this).find('input[type="submit"]'); var idProduct = $(this).attr('id'); $.ajax({ url: "ajax/cart.php", data: {variant: $(this).find('input[name=variant]:checked').val()}, dataType: 'json', success: function(data){ $('#cart_informer').html(data); if(button.attr('data-result-text')) button.val(button.attr('data-result-text')); modalPopup(idProduct); } }); Что нужно добавить, чтобы можно было выбрать количество товара перед помещением в корзину? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 27 февраля, 2015 Жалоба Поделиться Опубликовано 27 февраля, 2015 data: {variant: $(this).find('input[name=variant]:checked').val(), amount: $(this).find('input[name=amount]').val()}, Цитата Ссылка на сообщение Поделиться на другие сайты
fly90 Опубликовано 27 февраля, 2015 Жалоба Поделиться Опубликовано 27 февраля, 2015 (изменено) блин((( все сделал как надо, раз 40 перепроверил меня выкидывает в корзину(((. // Аяксовая корзина$('form.cart').live('submit', function(e) { e.preventDefault(); button = $(this).find('input[type=submit]'); $.ajax({ url: "ajax/cart.php", data: {variant: ($(this).find('input[name=variant]:checked').val() || $(this).find('select[name=variant]').val()), dataType: 'json', success: function(data){ $('#cart_informer').html(data); if(button.attr('data-result-text')) button.val(button.attr('data-result-text')); } }); var o1 = $(this).offset(); var o2 = $('#cart_informer').offset(); var dx = o1.left - o2.left; var dy = o1.top - o2.top; var distance = Math.sqrt(dx * dx + dy * dy); $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); $('.transfer_class').html($(this).closest('.product').find('.image').html()); $('.transfer_class').find('img').css('height', '100%'); return false;}); /* скажите пожалуйста где ошибка? div class="price"> <strike class='compare_price right'>{if $product->variant->compare_price > 0}{$product->variant->compare_price|convert}{else}{/if} </strike> {if $product->variant->price >0}<span>{$product->variant->price|convert}</span><i>{$currency->sign|escape}</i> <input type=button value="-" class="add1" onclick="javascript:this.form.amount.value= this.form.amount.value<=1 ? 1 :parseInt(this.form.amount.value)-1 ;"><input type="text" style="border:1px solid #C8C7C7; height:21px; width:38px; text-align:center; font-size:11px" name="amount" value="1"><input type=button value="+" class="add2" onclick="javascript:this.form.amount.value= this.form.amount.value>=1000 ? 1000 :parseInt(this.form.amount.value)+1 ;">{if $product->variant->stock} {$product->variant->stock|escape}шт{/if}{else}<small class='right' title='Не назначена цена'><br />Под заказ</small> {/if} </div> <div class="variants"> </div> Изменено 27 февраля, 2015 пользователем fly90 Цитата Ссылка на сообщение Поделиться на другие сайты
fly90 Опубликовано 27 февраля, 2015 Жалоба Поделиться Опубликовано 27 февраля, 2015 (изменено) 1 Изменено 27 февраля, 2015 пользователем fly90 Цитата Ссылка на сообщение Поделиться на другие сайты
fly90 Опубликовано 28 февраля, 2015 Жалоба Поделиться Опубликовано 28 февраля, 2015 Вообщем собрал все, что мог на форуме и решил запилить в отдельной теме полностью рабочий код для симплы 2.х.Основной вклад во все это сделал модератор http://forum.simplacms.ru/user/311-danya/ Код в ajax-cart.js: $('form.variants').live('submit', function(e) { e.preventDefault(); var button = $(this).find('input[type="submit"]'); $.ajax({ url: "ajax/cart.php", data: {variant: ($(this).find('input[name=variant]:checked').val() || $(this).find('select[name=variant]').val()), amount: $(this).find('select[name="amount"]').val() }, dataType: 'json', success: function(data){ $('#cart_informer').html(data); if(button.attr('added_text')) button.val(button.attr('added_text')); } }); var o1 = $(this).offset(); var o2 = $('#cart_informer').offset(); var dx = o1.left - o2.left; var dy = o1.top - o2.top; var distance = Math.sqrt(dx * dx + dy * dy); $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); $('.transfer_class').html($(this).closest('.product').find('.image').html()); $('.transfer_class').find('img').css('height', '100%'); return false;}); И код выпадающего списка, вставляем туда, где требуется: <select name="amount" class="amounts"> {section name=amounts start=1 loop=$product->variant->stock+1 step=1} <option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option> {/section} </select> Спасибо большое код полностью рабочий, но у меня есть проблема с которой я не могу разобраться я вам написал в л.с Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 28 февраля, 2015 Жалоба Поделиться Опубликовано 28 февраля, 2015 Тут неверно: data: {variant: ($(this).find('input[name=variant]:checked').val() || $(this).find('select[name=variant]').val()), Вам ведь подсказка дана по другому, смотрите внимательно... Цитата Ссылка на сообщение Поделиться на другие сайты
Slip Опубликовано 4 марта, 2015 Жалоба Поделиться Опубликовано 4 марта, 2015 (изменено) data: {variant: $(this).find('input[name=variant]:checked').val(), amount: $(this).find('input[name=amount]').val()},Спасибо но это не помогло Что то тут не то, не добавляет кол-во товара в корзину. Изменено 4 марта, 2015 пользователем Slip Цитата Ссылка на сообщение Поделиться на другие сайты
Slip Опубликовано 4 марта, 2015 Жалоба Поделиться Опубликовано 4 марта, 2015 Тут неверно: data: {variant: ($(this).find('input[name=variant]:checked').val() || $(this).find('select[name=variant]').val()), Вам ведь подсказка дана по другому, смотрите внимательно...Что за подсказка? Куда смотреть, помогите пожалуйста. Цитата Ссылка на сообщение Поделиться на другие сайты
Slip Опубликовано 6 марта, 2015 Жалоба Поделиться Опубликовано 6 марта, 2015 Может кто за денюшку поможет решить проблему? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.