С какой стороны взяться?
Есть небольшая таблица (6х5) с ценами в гривнях. Необходима возможность выбирать валюту (например через флажки над таблицей) для того, чтобы цены отображались в разных валютах, например для рублей и долларов.
Помогите с логикой, или возможно подскажите как проще будет сделать? Благодарен за любые советы или рекомендации |
Проблема решена, кому интересно вот код:
Присваиваем таблице id=main_price и для тех ячеек таблицы, данные в которых необходимо конвертировать присваиваем id="ToConvert" (<td id="ToConvert">100</td>)
Текущая валюта(Валюта по умолчанию):
<div id="IndocatorCur" style="background: url(flags/ua.jpg) no-repeat;">UAH</div>
<div id="CurRUR" style="visibility: hidden;">0.27</div> <!--Курс рубля-->
<div id="CurEUR" style="visibility: hidden;">10</div> <!--Курс евро-->
<div id="CurUSD" style="visibility: hidden;">7.97</div> <!--Курс доллара-->
Выбрать валюту:
<div onclick="convert('RUR');" style="background: url(flags/ru.jpg;) no-repeat;">Руб.</div>
<div onclick="convert('UAH');" style="background: url(flags/ua.jpg;) no-repeat;">Грн.</div>
<div onclick="convert('USD');" style="background: url(flags/en.jpg;) no-repeat;">Дол.</div>
<div onclick="convert('EUR');" style="background: url(flags/eu.jpg;) no-repeat;">Евро</div>
function convert(val){
var TablePrice = document.getElementById("main_price");
var trList = TablePrice.getElementsByTagName("tr");
var IdVal = document.getElementById("IndocatorCurHide");
var IdCur = document.getElementById("IndocatorCur");
var CurUSD = parseFloat(document.getElementById("CurUSD").innerHTML);
var CurRUR = parseFloat(document.getElementById("CurRUR").innerHTML);
var CurEUR = parseFloat(document.getElementById("CurEUR").innerHTML);
var Kurce = 1;
var KurceUAH = 1;
switch (val) {
case "RUR":
IdCur.style.backgroundImage = "url('flags/FlagsRussia.jpg')";
break;
case "EUR":
IdCur.style.backgroundImage = "url('flags/FlagsEU.jpg')";
break;
case "USD":
IdCur.style.backgroundImage = "url('flags/FlagsUSA.jpg')";
break;
case "UAH":
IdCur.style.backgroundImage = "url('flags/FlagsUkraine.jpg')";
break;
}
for (var i = 0; i < trList.length; i++) {
var tdList = trList[i].getElementsByTagName('td');
for (j = 0; j < tdList.length; j++) {
if (tdList[j].id == "ToConvert") {
if ((tdList[j].innerHTML != "") && (tdList[j].innerHTML != "-")) {
var TmpPrice = parseFloat(tdList[j].innerHTML);
switch (IdVal.innerHTML) {
case "RUR":
switch (val) {
case "UAH":
TmpPrice *= CurRUR;
break;
case "EUR":
TmpPrice *= CurRUR;
TmpPrice /= CurEUR;
break;
case "USD":
TmpPrice *= CurRUR;
TmpPrice /= CurUSD;
break;
}
; break;
case "USD":
switch (val) {
case "UAH":
TmpPrice *= CurUSD;
break;
case "EUR":
TmpPrice *= CurUSD;
TmpPrice /= CurEUR;
break;
case "RUR":
TmpPrice *= CurUSD;
TmpPrice /= CurRUR;
break;
}
; break;
case "EUR":
switch (val) {
case "UAH":
TmpPrice *= CurEUR;
break;
case "RUR":
TmpPrice *= CurEUR;
TmpPrice /= CurRUR;
break;
case "USD":
TmpPrice *= CurEUR;
TmpPrice /= CurUSD;
break;
}
; break;
case "UAH":
switch (val) {
case "RUR":
TmpPrice /= CurRUR;
break;
case "EUR":
TmpPrice /= CurEUR;
break;
case "USD":
TmpPrice /= CurUSD;
break;
}
; break;
}
tdList[j].innerHTML = TmpPrice.toFixed(2);//Math.round(TmpPrice / 0.1) * 0.1;
}
}
}
}
IdVal.innerHTML = val;
IdCur.innerHTML = val;
}
|
Какой милый говнокод. Можно было бы сделать лучше:
var Values = {
"RUR-EUR" : 0.03,
"EUR-RUR" : 33 // и т. д.
};
...
tdList[j].innerHTML = Values[IdVal.innerHTML + "-" + val];
Против ничего не имею, просто на заметку. |
Спасибо, я же сказал буду рад любым предложениям, переделаем :)
|
| Часовой пояс GMT +3, время: 10:52. |