semki096: навешивается обработчик на submit. В хендлере проверяем наличие свойства у объекта формы. Если свойства "xajaxsubmitted" нет, то отменяем действие по-умолчанию и запускаем АДЖАКС-запрос. В коллбеке запроса присваиваем свойство объекту и вызываем обработчик снова. При этом действие по-умолчанию не будет отменено и форма сработает как и должна.
Если совсем правильно, то следует из всех товаров в корзине сформировать отдельную сущность "заказ" при оформлении и очищать корзину. Покупатель в ИМ оплачивает заказ, а не набор отдельных товаров, имхо.
swibong: проблема производительности с универсальным селектором на самом деле есть, на больших страницах; такой css reset "для бедных" сразу придает запашок коду; по поводу box-sizing уже заметили выше, он нужен очень и очень редко.
Roman: лучше запросов в цикле? Тем, что любые запросы к БД -- это накладные расходы. Два-пять простых запроса в цикле может быть будет и быстрее, чем один "толстый", но при увеличении кол-ва запросов и будет расти как общее время выполнения, так и, возможно, потребление памяти. Еще есть такие штуки, как неявная блокировка таблиц при чтении/записи.
Вообще можете накидать для себя небольшой бенчмарк (запросы в цикле и один запрос) и посмотреть результаты.
-o- уже давно не нужно делать. Да и -moz- тоже. В принципе, почти везде вендорные префиксы можно выкинуть, если это презентационные шутки (так оно чаще всего и бывает).
stoik_kpd: не все так просто. Если вы подобное сделаете в result_modifier.php шаблона компонента, то при включенном кэшировании это сработает только один раз. При следующих хитах дескрипшен будет пустой.
Если сделать финт с событием или с кодом в footer.php шаблона, как предлагает Сергей, то такое будет работать и постоянно, и не только для описаний, которые были добавлены в элементах ИБ.
Вот пример кода, который можно засунуть в конец footer.php:
<?php
$desc = $APPLICATION->GetProperty('description') . ' some text after description';
$APPLICATION->SetPageProperty('description', $desc);
?>