БалбесЪ 1 Опубликовано 10 июня, 2011 Жалоба Share Опубликовано 10 июня, 2011 Добрый вечер! Обнаружил ошибку в работе бокса Корзина при включенном ajax. Ошибка в следующем: после операций стоваром (добавить\удалить) часть бока Корзина дублируется! Как исправить - не нашел. Нужна Ваша помощь. Пробовал в стандартном шаблоне - тоже самое! Вот часть html-кода страницы до манипуляций с товаром: <!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <div id="boxCart"> ...контент бокса... </div> </div> <!-- /Бокс корзина -->[/code] Вот часть html-кода страницы [b]после манипуляций с товаром[/b]: [code] <!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <div id="boxCart"> ...контент бокса... </div> </div> <!-- /Бокс корзина --> </div> <!-- /Бокс корзина --> Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 июня, 2011 Жалоба Share Опубликовано 11 июня, 2011 А у Вас свой шаблон или стандартный vamshop?! Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 11 июня, 2011 Автор Жалоба Share Опубликовано 11 июня, 2011 А у Вас свой шаблон или стандартный vamshop?! Баг проявляется как на своем шаблоне, так и на стандартном. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 11 июня, 2011 Жалоба Share Опубликовано 11 июня, 2011 Пробую вот здесь - http://demo.vamhost.ru Нормально всё, ничего не двоится. Или я не туда смотрю? Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 11 июня, 2011 Автор Жалоба Share Опубликовано 11 июня, 2011 Пробую вот здесь - http://demo.vamhost.ru Нормально всё, ничего не двоится. Или я не туда смотрю? На http://demo.vamhost.ru я лично не могу включить аякс-корзину, т.к. настройки не сохраняются А Вы можете включить, а я проверю? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 июня, 2011 Жалоба Share Опубликовано 12 июня, 2011 Не ту ссылку вставил, хотел написать http://vamshop.ru/vamshop.html Проверьте там. Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 12 июня, 2011 Автор Жалоба Share Опубликовано 12 июня, 2011 Не ту ссылку вставил, хотел написать http://vamshop.ru/vamshop.html Проверьте там. Тут работает... Что же за ерунда? На стандартном шаблоне у меня "тоже" двоится... http://ik.gsi.kiev.ua/bumaga-maestro.html Сейчас поставлю для теста стандартную демо-версию и попробую Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 июня, 2011 Жалоба Share Опубликовано 12 июня, 2011 Попробуйте. На vamshop.ru как раз и стоит стандартная версия. Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 13 июня, 2011 Автор Жалоба Share Опубликовано 13 июня, 2011 Попробуйте. http://ik.vitrebenki.com/ "Свежая" "чистая" установка, версия 1.63 - ничего не трогал, импортировал десяток товаров. Глюк аякс-корзины наблюдается! Нужно решение. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 Смотрю в firefox - ничего не двоится. Ссылка на сообщение Поделиться на другие сайты
YuraS 4 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 Смотрю в Опере - ничего не двоится. Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 FireFox и Chrome - двоится. В опере не знаю такого инструмента. Смотреть нужно не исходный код страницы, а код, сгенерированный ajax-ом. В FireFox - "Анализировать элемент". В Chrome - "Просмотр кода элемента". В jscript_ajax_cart.js бокс на странице формируется document.getElementById('divShoppingCart').innerHTML = ''+(reqAddCart.responseText||'') а сам html бокса, т.е. тот самый reqAddCart.responseText выглядит так: <!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <div id="boxCart"> <b class="top"><b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b><b class="b5"></b></b> <div class="boxheader"> <p> » <a href="{$LINK_CART}">{#heading_cart#}</a></p> </div> <div class="boxcontent"> ... </div> <b class="bottom"><b class="b5b"></b><b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b></b> </div> </div> <!-- /Бокс корзина -->[/code] Таким образом в divShoppingCart подставляется этот html. Получаем дублирование [code]<!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <!-- Бокс корзина --> <script type="text/javascript" src="jscript/jscript_ajax_cart.js"></script> <div id="divShoppingCart"> <div id="boxCart"> <b class="top"><b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b><b class="b5"></b></b> <div class="boxheader"> <p> » <a href="http://ik.vitrebenki.com/shopping_cart.php">Корзина</a></p> </div> <div class="boxcontent"> ... </div> <b class="bottom"><b class="b5b"></b><b class="b4b"></b><b class="b3b"></b><b class="b2b"></b><b class="b1b"></b></b> </div> </div> <!-- /Бокс корзина --> </div> <!-- /Бокс корзина --> Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 Переходи на jquery ;) Тем более что там совсем всё просто. Гораздо проще чем сейчас. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 Да вот пытаюсь, но ajax корзину пока что не получается переделать на jQuery. Может к следующей версии. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 БалбесЪ Видимо, это ошибка. Но как исправить сразу не скажу, к сожалению. Только к следующей версии. Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 13 июня, 2011 Автор Жалоба Share Опубликовано 13 июня, 2011 БалбесЪ Видимо, это ошибка. Но как исправить сразу не скажу, к сожалению. Только к следующей версии. Решение нужно сейчас, т.к. нужно сдавать проект. Как мне объяснить заказчику, что движок, за который платятся деньги, с багом? У меня из-за бага не работает корзина так, как должна. Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 13 июня, 2011 Жалоба Share Опубликовано 13 июня, 2011 Cофта без багов не бывает. Ни платного, ни бесплатного. Что именно в корзине не работает так, как должно? Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 13 июня, 2011 Автор Жалоба Share Опубликовано 13 июня, 2011 Cофта без багов не бывает. Ни платного, ни бесплатного. Что именно в корзине не работает так, как должно? Использую в корзине jscript для свертывания\развертывания корзинки. После добавления товара получаю два div-а с одинаковым идентификатором (#divShoppingCart)и скрипт больше не срабатывает. Как вариант, конечно, можно попробовать создать еще один div внутри #divShoppingCart и привязать скрипт к нему. Буду пробовать утром. Даже в таком варианте нужно хотя бы использовать в корзине не <div id="divShoppingCart">, а <div class="divShoppingCart">, чтобы не получать два одинаковых id. Но тогда не будет срабатывать скрипт ajax, а значит нужно разбираться с кодом ajax, а значит тратить время. Хотелось бы чтобы это время тратил не я, а разработчик. Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 14 июня, 2011 Жалоба Share Опубликовано 14 июня, 2011 (изменено) Использую в корзине jscript для свертывания\развертывания корзинки. После добавления товара получаю два div-а с одинаковым идентификатором (#divShoppingCart)и скрипт больше не срабатывает. Это точно, такой селект не сработает. Хотелось бы чтобы это время тратил не я, а разработчик. Я не разработчик этого скрипта, но подсказать могу. Из солидарности ;) В ajax_shopping_cart.php замени echo $box_shopping_cart; на if (($i = strpos($box_shopping_cart, '<div id="divShoppingCart">')) !== false) { $box_shopping_cart = substr($box_shopping_cart, $i+26); $i = strrpos($box_shopping_cart, '</div>'); $box_shopping_cart = substr($box_shopping_cart, 0, $i); } echo $box_shopping_cart;[/code] Не проверял, но должно сработать. Изменено 14 июня, 2011 пользователем ABerezin Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 14 июня, 2011 Автор Жалоба Share Опубликовано 14 июня, 2011 Не проверял, но должно сработать. По логике должно работать, но не работает ajax - не "ложатся" товары в корзину. Направление верное - буду думать, спасибо! ПС: Работает вот так: $i = strpos($box_shopping_cart, '<div id="divShoppingCart">'); if ($i>0) { $box_shopping_cart = substr($box_shopping_cart, $i+26); $i = strrpos($box_shopping_cart, '</div>'); $box_shopping_cart = substr($box_shopping_cart, 0, $i); } echo $box_shopping_cart;[/code] Спасибо! Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 14 июня, 2011 Жалоба Share Опубликовано 14 июня, 2011 Скобки не хватало - исправил. Это неправильная конструкция if ($i>0) { Она не сработает если $box_shopping_cart начинается с '<div id="divShoppingCart">'. Что вполне реально, т.к. зависит от шаблона. Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 14 июня, 2011 Автор Жалоба Share Опубликовано 14 июня, 2011 Скобки не хватало - исправил. Это неправильная конструкция if ($i>0) { Она не сработает если $box_shopping_cart начинается с '<div id="divShoppingCart">'. Что вполне реально, т.к. зависит от шаблона. Тогда вот так: if ($i) ...{ Вообщем, твой вариант, но со скобкой - будет работать, я так думаю. Я и сам там не заметил, что скобки не хватает, а интерпритатор ошибки не выдал. Спасибо за идею! Ссылка на сообщение Поделиться на другие сайты
ABerezin 0 Опубликовано 14 июня, 2011 Жалоба Share Опубликовано 14 июня, 2011 Тогда вот так: if ($i) ...{ Тоже не правильно. На 0 не сработает. Тогда уж if ($i !== false) ...{ Я и сам там не заметил, что скобки не хватает, а интерпритатор ошибки не выдал. Он выдавал, но в аякс-е это не так просто. Нужно включать логгирование ошибок и смотреть в error_log. Спасибо за идею! Пожалуйста за код. Ссылка на сообщение Поделиться на другие сайты
БалбесЪ 1 Опубликовано 14 июня, 2011 Автор Жалоба Share Опубликовано 14 июня, 2011 Он выдавал, но в аякс-е это не так просто. Нужно включать логгирование ошибок и смотреть в error_log. Пожалуйста за код. Я в ajax не разбирался даже как оно работает - пока не пригождалось, хотя можно, наверное делать интересные вещи... ПС: "Пожалуйста за код." И за код тоже спасибо, но тут идея главное! Код - то такое... Ссылка на сообщение Поделиться на другие сайты
LordBelial 0 Опубликовано 22 мая, 2013 Жалоба Share Опубликовано 22 мая, 2013 Баг остался, и в версии 1.70, и на http://demo.vamhost.ru, и на http://vamshop.ru/vamshop.html . Решается описанным тут способом. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения