Показать сообщение отдельно
  #15 (permalink)  
Старый 22.07.2016, 06:43
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

ТС, ты зачем мозг насилуешь? Тебе всего-то надо заменить несколько переменных по одному всего лишь признаку. Сделай таблицу цен по рыгионам и подставляй нужный объект, ты мужик или не мужык?

var costs={},
    Cost; /* выбранный регион */

costs.msk={
   name:Мозгва,
   0:970,
   1:100,
   12:300,
   31:0
};

costs.nsk={
   name:Новосибирск
   0:670,
   1:200,
   12:500,
   31:0
};

/* продолжай копипастить и менять цены по дням для рыгиона */

costs.spb={
   name:Питербурх
   0:170,
   1:600,
   12:600,
   31:1
};

Cost=costs.msk; /* дефаульт сити  */



Теперь делаешь список

var html=[];

for(var item in costs)
   html.push('<option value="'+key+'"'+((costs[key]===Cost)?' selected':'')+'>'+costs[key].name+'</option>';

some_elem.innerHTML='<select>'+html.join('')+'</select>';
some_elem.addEventListener('change',calc);



Теперь калькируешь

var calc=function(e){

    /* если есть такой регион, то взять, иначе в мозгву, или какой-то дефольт */

    var region = (costs.hasOwnProperty(this.value))?costs[this.value]:costs.msk

    /* в var today; номер дня, если не твой день, то дефолт */

    Cost = region.hasOwnProperty(today)?cost[today]:cost[0];

};



Всенах.

Последний раз редактировалось warren buffet, 22.07.2016 в 07:01.
Ответить с цитированием