Наборы параметров для HTML блока и переключение между ними
Здравствуйте!
Мастерю что-то вроде опций товара в интернет-магазине. Дело в том, что опций много, и в зависимости от одной опции, меняются другие опции. Например Есть футболка. Футболка может быть пяти размеров - супер маленькая, маленькая, обычная, большая, супер большая. В зависимости от того, какой размер выбран, у футболки может быть разный тип ткани (если маленькие, то хлопок, если средняя и больше, то например, синтетика) И опять таки, если выбрана синтетика, то рисунок на футболке может быть сделан только одним типом краски (когда для хлопка можно выбрать три типа краски) и она не может быть красного цвета. Я пытаюсь сообразить, как бы это грамотнее все сделать. Все эти опции разделены на группы радио кнопок и в зависимости от выбранных опций, меняется превью товара. Сейчас это выглядит как перебор кучи условий if-else и замена состояний тех или иных форм ввода и изменение классов у картинки-превью. Код разросся почти до 200 строк и смотреть на него не приятно. Буду рад любой помощи, спасибо. |
Цитата:
Интересно, а где и как хранятся эти характеристики товара на сервере? |
Все опции хранятся в JSON в базе данных вот так:
[{"X_id":"1","name":"","description":"","size":"","price":"1234","paint":"123","paint2":"0","canvas":"3900","nodecor":"0","mont1":"231","mont2":"123","print":"1234","mont3":"2344"}, {"X_id":"2","name":"","description":"","size":"40*60","price":"3000","paint":"400","paint2":"0","canvas":"44","nodecor":"0","mont1":"213","mont2":"312","print":"222","mont3":"2345"}, {"X_id":"3","name":"","description":"","size":"60*90","price":"5000","paint":"333","paint2":"0","canvas":"22","nodecor":"0","mont1":"123","mont2":"423","print":"500","mont3":"2523"}, {"X_id":"4","name":"","description":"","size":"100*150","price":"10000","paint":"333","paint2":"0","canvas":"553","nodecor":"566","mont1":"23","mont2":"324","print":"123","mont3":"52325"}, {"X_id":"5","name":"","description":"","paint":"223","paint2":"343","canvas":"77","nodecor":"777","mont1":"342","mont2":"324","print":"1234","mont3":"52523"}] Где name и description это описание размера, а остальное - наценка за определенные опции, за краску, тип ткани и все такое. Но связей зависимостей одной опции от другой нигде никак не указано, это просто известно и не меняется никогда. |
Цитата:
Вот это и плохо, отсюда и грабли. |
К сожалению, этот формат использует модуль CMS, ничего с этим сделать нельзя(
|
Цитата:
|
Часовой пояс GMT +3, время: 02:49. |