nightmaar Posted November 8, 2011 Report Share Posted November 8, 2011 Всем привет!Вопрос по 2.0.Для проекта необходимо сделать вывод вариантов в виде таблицы, у каждого варианта будет своя фотка, и у каждого варианта должна быть кнопка "купить".Подскажите, как сделать обработку корзины не формой, а ссылкой? Чтобы не связываться с формой и по-простому вывести из базы варианты и кнопки "купить" к ним. Я попробовал поработать с формой и сделать множественные submit-ы, но это не работает с ajax корзиной. Может не туда смотрел. Quote Link to post Share on other sites
Kosjak76 Posted November 8, 2011 Report Share Posted November 8, 2011 Я бы для каждого варианта сделал свою форму, и естественно, Джаваскрипт-файл аякс-корзины тоже надо будет поправить. Могу сделать недорого. Сложного ничего нет. Quote Link to post Share on other sites
Json Posted April 20, 2015 Report Share Posted April 20, 2015 Я бы для каждого варианта сделал свою форму, и естественно, Джаваскрипт-файл аякс-корзины тоже надо будет поправить. Могу сделать недорого. Сложного ничего нет.а может поделитесь если это не сложно? Quote Link to post Share on other sites
Noxter Posted April 20, 2015 Report Share Posted April 20, 2015 а может поделитесь если это не сложно?Я делал вот так: {if $product->variants|count > 0} <!-- Выбор варианта товара --> {foreach $product->variants as $v} <form class="variants" action="/cart"> <table class="var"> <tr class="variant"> <td> <input type="hidden" name="variant" value="{$v->id}"> </td> <td class="variant_name"> {if $v->name} <label for="variants_{$v->id}"> {$v->name} </label> {/if} </td> <td class="price"> {if $v->compare_price > 0} <label class="compare_price"> {$v->compare_price|convert} </label> {/if} <label>{$v->price|convert} {$currency->sign|escape}</label> </td> <td> <input type="submit" class="add2cart" value="Купить" data-result-text="Добавил"/> </td> </tr> </table> </form> {/foreach} <!-- Выбор варианта товара (The End) --> {else} Нет в наличии {/if} При чем больше ничего переделывать не нужно. Quote Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 делал так же недавно, также могу добавить, что можно сделать еще через data. например так с выбором количества товара: {if $product->variants|count > 0} <table> {foreach $product->variants as $v} <tr> <td>{$v->name}</td> <td>{$v->price|convert} {$currency->sign|escape}</td> <td><input id="am_{$v->id}" name="am[{$v->id}]" value="1" class="inputNumber"></td> <td><a href="#" class="addToCart" data-id="{$v->id}">добавить в корзину</a></td> </tr> {/foreach} {else} Нет в наличии {/if} и меняем скрипт аякс корзины ajax_cart.js на $('.addToCart').on('click', function(e) { e.preventDefault(); var product = { vt: $(this).data('id'), am: $(this).closest('tr').find('.inputNumber').val(), }; $.ajax({ url: "ajax/cart.php", data: product, dataType: 'json', success: function(data){ $('#cart_informer').html(data); } }); return false; }); Quote Link to post Share on other sites
Kors Posted April 22, 2015 Report Share Posted April 22, 2015 (edited) mishanya, если уж пишете такие изменения в коде, что меняете передаваемые переменные в ajax_cart.js, то надо и изменение кода для их обработки в ajax/cart.php тоже приводить. А вообще непонятно, зачем Вы усложняете и не используете стандартные названия переменных... Edited April 22, 2015 by Kors Quote Link to post Share on other sites
mishanya Posted April 22, 2015 Report Share Posted April 22, 2015 (edited) mishanya, если уж пишете такие изменения в коде, что меняете передаваемые переменные в ajax_cart.js, то надо и изменение кода для их обработки в ajax/cart.php тоже приводить. А вообще непонятно, зачем Вы усложняете и не используете стандартные названия переменных...согласен, затупил чуток), вот вариант, в котором не надо менять ajax/cart.php: $('.addToCart').on('click', function(e) { e.preventDefault(); $.ajax({variant: $(this).data('id'), amount:$(this).closest('tr').find('.inputNumber').val()}, url: "ajax/cart.php", data: product, dataType: 'json', success: function(data){ $('#cart_informer').html(data); } }); return false; }); Edited April 22, 2015 by mishanya Quote Link to post Share on other sites
Json Posted April 24, 2015 Report Share Posted April 24, 2015 согласен, затупил чуток), вот вариант, в котором не надо менять ajax/cart.php: $('.addToCart').on('click', function(e) { e.preventDefault(); $.ajax({variant: $(this).data('id'), amount:$(this).closest('tr').find('.inputNumber').val()}, url: "ajax/cart.php", data: product, dataType: 'json', success: function(data){ $('#cart_informer').html(data); } }); return false; }); Не получается что-то сделать, может где то ошибсяДелаю так:1. Создал отдельно файл desing/moi_desing/ыeсtion_cart.js внес код, который чуть выше2. в шаблоне карточки вставил вот такой код: {if $product->variants|count > 0} <table> {foreach $product->variants as $v} <tr> <td>{$v->name}</td> <td>{$v->price|convert} {$currency->sign|escape}</td> <td style="display:none;"><input id="am_{$v->id}" name="am[{$v->id}]" value="1" class="inputNumber"></td> <td><a href="#" class="addToCart" data-id="{$v->id}">добавить в корзину</a></td> </tr> {/foreach} </table> {else} Нет в наличии {/if} столбцу с количеством товара, выставил none, так как не нужно. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.