Делаем удобочитаемые цены в каталоге
Создавая каталоги товаров важно уделять внимание удобству восприятия цен на товары. Согласитесь, что достаточно сложно прочитать число 89433034, куда приятнее визуально отделить тысячи от сотых, миллионы от тысяч, миллиарды от… впрочем, я пока не встречал в своей практике товары, стоимостью выше миллионов =). Тем не менее, нужно помнить о посетителях и создавать все условия для покупки.
Хочу предложить две маленькие, но очень полезные функции на php и javascript, позволяющие автоматически преобразовывать числа в удобочитаемую строку. Другими словами превратить из 89433034 в 89 433 034.
Цены и просто числа удобнее хранить в базе в полях типа INT или FLOAT, т.к. это позволяет легко ими управлять и производить математические операции, а вот выводить на сайте их стоит разделяя пробелами, а есть быть точнее неразрывными пробелами
Первая функция на php создана для того, чтобы генерировать контент и сразу выводить его на страницу, полезна при отображении цен для товаров.
1 2 3 4 5 6 7 8 9 | function price_format($price) { $point = strcspn($price, " "); $pr = $price[0]; for($n=1; $n<$point; $n++) { if (ceil(($point-$n)/3) == ($point-$n)/3) $pr = $pr." "; $pr = $pr.$price[$n]; } return $pr; } |
Вторая функция на javascript полезна в случаях когда Вы используете на своем сайте AJAX запросы, к примеру, в корзине заказов для удобного изменения количества покупаемых товаров, а следовательно, и итоговой цены товара.
1 2 3 4 5 6 7 8 9 | function price_format(price) { point = price.length; pr = price.charAt(0); for(n=1; n<point; n++) { if (Math.ceil((point-n)/3) == (point-n)/3) pr = pr + " "; pr = pr + price.charAt(n); } return pr; } |
В обоих случаях функции принимают только один параметр – цену в числовом формате.

