skyotch2011 Posted April 29, 2012 Share Posted April 29, 2012 Здравствуйте, хорошим людям! У меня возникла интересная проблема, которую я бы хотел по скорее решить, видимо без Вас мне это "по скорее" будет сложно достигнуть, проблема в следующем: На сайте http://pol-art.ru, при переходе в корзину после добавления товара, в столбце "Треб. кол-во (м2)" необходимо ввести цифры, система непосредственно пересчитывает в деньги и в "Фактич. кол-во (м2)", а именно проблема заключается, что данные пересчитывает верно, но не нравится, что в "итого" пересчитывается без перезагрузки страницы, а "Фактич. кол-во (м2)", только с перезагрузкой. Есть подозрения на файл, в котором я реализовывал формулу для корректного пересчета, как мне необходимо, он находится в classes/cart.php, а именно $row['total_wt'] = ($row['price_wt'] * $row['weight']) * ceil((int)($row['cart_quantity']) / $row['weight']); $row['total_wt_metr'] = ($row['weight']) * ceil((int)($row['cart_quantity']) / $row['weight']); Где total_wt_metr - Фактич. кол-во (м2) Спасите пожалуйста! Забыл упомянуть, что вставил {$product.total_wt_metr} в shopping-cart-product-line.tpl Cart.php Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted April 30, 2012 Share Posted April 30, 2012 Имхо, есть 2 варианта, если бы такая задача стояла передо мной: 1. сделать расчет формул в js повесит на onchange и забыть 2. пойти идеологически более верным путем, заглянуть в ajax-cart.js и увидеть // cart to fix display when using back and previous browsers buttons refresh : function(){ //send the ajax request to the server $.ajax({ type: 'GET', url: baseDir + 'cart.php', async: true, cache: false, dataType : "json", data: 'ajax=true&token=' + static_token, success: function(jsonData) { ajaxCart.updateCart(jsonData); }, понять что вызывается корзино-контроллер ( премного уважаемый вагоно-уважатый (с) ) а результат обрабатывается ajaxCart.updateCart(jsonData); пойти в controllers/CartController.php и увидеть $this->preProcess(); if (Tools::getValue('ajax') == 'true') { if (Tools::getIsset('summary')) { $result = array(); ..... ..... $result['summary'] = self::$cart->getSummaryDetails(); $result['customizedDatas'] = Product::getAllCustomizedDatas((int)(self::$cart->id)); $result['HOOK_SHOPPING_CART'] = Module::hookExec('shoppingCart', $result['summary']); $result['HOOK_SHOPPING_CART_EXTRA'] = Module::hookExec('shoppingCartExtra', $result['summary']); die(Tools::jsonEncode($result)); сделать необходимые вычисление и передать их в result затем снова заглянуть в js, увидеть что картАпдейт вызывает updateCartEverywhere и уже в ней дописать строку вида $('.cart_quantity2').text(jsonData.productQuantity2); где productQuantity2 - это полученный из корзино-контроллера результат ( $result['productQuantity2'] ) П.С. странно почему обращение $('.cart_quantity2') идет по классу, по айди было бы быстрее.. но видимо при таких размерах кода - несущественно Link to comment Share on other sites More sharing options...
skyotch2011 Posted May 1, 2012 Author Share Posted May 1, 2012 я плохо понимаю, SergeyH, подскажи, пожалуйста как все это поэтапно не для программиста, на уровне сходи до файла, вставь вот этот код или замени, а потом... Я безумно буду благодарен, хотя и так тоже благодарен, вот как я разволновался, что аж перешел на беспонтовую лесть. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted May 1, 2012 Share Posted May 1, 2012 Код писать мне лень, хотя там и писать нечего, в первом посте вот это я реализовывал формулу для корректного пересчета предполагало что навыки есть Link to comment Share on other sites More sharing options...
Recommended Posts