Andmanx Опубликовано 4 ноября, 2012 Жалоба Поделиться Опубликовано 4 ноября, 2012 Что надо:Удаление товара из корзины непосредственно со страницы без перезагрузки. Как на движке prestashop ( http://demo-store.prestashop.com/en/ )Что сделал:Вклеил часть кода из cart.tpl в cart_informer.tplТовар отображается, удаляется, но перенаправляется на /cart/ .htaccess'ом (index.php?module=CartView&delete_variant=$1 )Пробую внести изменения в ajax-cart.js , но знания джаваскрипта невелики и это не удается. Пробую брать пример с jcart, на котором, собственно, всё основано.ajax_cart.js : function remove(link) { var queryString = link.attr('href'); queryString = queryString.split('='); $.ajax({ type: 'GET', data: { "delete_variant": delete_variant_id, } }); container.delegate('.remove', 'click', function(e){ remove($(this)); e.preventDefault(); }); cart_informer.tpl :<td class="remove"> <a href="cart/remove/{$purchase->variant->id}"> <img src="design/{$settings->theme}/images/delete.png" title="Удалить из корзины" alt="Удалить из корзины"> </a> </td>Что я делаю не так? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 4 ноября, 2012 Жалоба Поделиться Опубликовано 4 ноября, 2012 http://forum.simplacms.ru/discussion/1334/raschet-ceny-bez-perezagruzki-stranicy/p1 Цитата Ссылка на сообщение Поделиться на другие сайты
Andmanx Опубликовано 4 ноября, 2012 Автор Жалоба Поделиться Опубликовано 4 ноября, 2012 Добавил в cart_informer.tpl<script type="text/javascript"> function remove_item_cart(delete_variant_id) { var deleivery = $("input[name=delivery_id]:checked").attr('id'); var lastpage ={/literal}{if $last_page}'{$last_page}';{else}'';{/if}{literal} $('#remove_'+delete_variant_id).append('<img class="cart_loader" src="design/{/literal}{$settings->theme}{literal}/images/loader.gif" title="Выполнятю..." alt="Выполнятю..." style="z-index: 99; position: absolute">'); $("#deliveries").animate({'opacity':'0.3'},600); $.ajax({ url: "ajax/cart_update.php", data: {'delete_variant_id':remove_id}, success: function(data){ if(data){ if(data.total == 0){ if(lastpage){ location.href=lastpage; } else{ location.reload(); } } $('#cart_informer').html(data.informer); $('#total_products').html(data.total_products); $('#total_price').html(data.total_price); $('#deliveries').html(data.delivery); $("input[id="+deleivery+"]").attr('checked', true); $('#item_cart_'+delete_variant_id).hide(); $('.cart_loader').remove(); $("#deliveries").animate({'opacity':'1'}, 0); } } }); } </script>Заменил код там же: <td class="remove" id="remove_{$purchase->variant->id}"> <a href="#" onclick="cart/remove/{$purchase->variant->id}; return false"> <img src="design/{$settings->theme}/images/delete.png" title="Удалить из корзины" alt="Удалить из корзины"> </a> </td>Удалил header('location: '.$this->config->root_url.'/cart/');из CartView.phpЧто опять сделал не так? Цитата Ссылка на сообщение Поделиться на другие сайты
Andmanx Опубликовано 4 ноября, 2012 Автор Жалоба Поделиться Опубликовано 4 ноября, 2012 <td class="remove" id="remove_{$purchase->variant->id}"> <a href="#" onclick="cart/remove/{$purchase->variant->id}; return false"> <img src="design/{$settings->theme}/images/delete.png" title="Удалить из корзины" alt="Удалить из корзины"> </a> </td>function remove_(purchase->variant->id){ $('#remove_'+purchase->variant->id).append('<img class="cart_loader" src="design/{$settings->theme}/images/loader.gif" title="Выполняю..." alt="Выполняю..." style="z-index: 99; position: absolute">'); }Где беда? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 4 ноября, 2012 Жалоба Поделиться Опубликовано 4 ноября, 2012 В cart.tpl, возьми тот что из урока. Цитата Ссылка на сообщение Поделиться на другие сайты
Andmanx Опубликовано 4 ноября, 2012 Автор Жалоба Поделиться Опубликовано 4 ноября, 2012 Из cart.tpl и брал. Но как я понял версии использованы разные и код другой.remove_id — как я понял старый код, на новой версии используется delete_variant_id Цитата Ссылка на сообщение Поделиться на другие сайты
Andmanx Опубликовано 5 ноября, 2012 Автор Жалоба Поделиться Опубликовано 5 ноября, 2012 Kors, подскажи, пожалуйста. Цитата Ссылка на сообщение Поделиться на другие сайты
Andmanx Опубликовано 5 ноября, 2012 Автор Жалоба Поделиться Опубликовано 5 ноября, 2012 И что, собственно, делать?Мне кажется разработчикам всё-равно придётся встраивать это в новые версии.Неужели этот код такой сложный? Цитата Ссылка на сообщение Поделиться на другие сайты
misterk Опубликовано 6 ноября, 2012 Жалоба Поделиться Опубликовано 6 ноября, 2012 Делать следующее:-Ждать пока разработчику "придется" включить ajax корзину в новые версии.- Заказать данный функционал у кого-нить...Раз уж Сами не сумели..- Суметь самому написать рабочий код))P.S. Понятние "сложность кода" весьма относительное... Цитата Ссылка на сообщение Поделиться на другие сайты
technokid Опубликовано 19 апреля, 2015 Жалоба Поделиться Опубликовано 19 апреля, 2015 Может пригодится.Я решил так:создал файл cart_update.php в папке ajaxвот его содержимое session_start(); require_once('../api/Simpla.php'); $simpla = new Simpla(); if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest'){ if(isset($_GET['delete_variant_id']) && !empty($_GET['delete_variant_id'])){ $id = intval($_GET['delete_variant_id']); $simpla->cart->delete_item($id); echo json_encode(array('status'=>'success')); } } cart_informer.tpl у меня такой <li> <a href="products/{$product->product->url}"> {foreach $product->product->images as $images} <img src="{$images->filename|resize:50:50}" alt="{$product->product->name}" class="img-responsive"> {/foreach} </a> <span class="cart-content-count">x {$product->amount}</span> <strong><a href="products/{$product->product->url}">{$product->product->name}</a></strong> <em>{$product->variant->price|convert} {$currency->sign|escape}</em> <a href="javascript:void(0);" onclick="removeGoods(this,{$product->variant->id})" class="del-goods"> </a> </li> в этот же файл (cart_informer.tpl) в конец добавил {literal} <script type="text/javascript"> function removeGoods(el,id) { $.ajax({ url: "/ajax/cart_update.php", type : 'get', data: {'delete_variant_id':id}, dataType : 'json', success : function(d){ if(d.status == 'success'){ $(el).parent().remove(); } } }); } </script> {/literal} Как то так. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.