Элементарный подсчет и калькулятор
Здравствуйте, необходимо реализовать подсчет двух значений, при это одно значение задается пользователем, а второе фиксированное, но разных фиксированных значений есть 4 штуки. В общем должно получится что-то типа этого: https://obmennik.ws/ когда выбираешь валюты для обмена внизу под первым выпадающим меню появляется курс обмена, далее, при нажатии на кнопку "Обменять" нас редеректит на форму где вводятся значения ("Отдаёте:", "Получаете:"...), при вводе в форму значений появляется уже подсчитаное количество знаков которые нужно отдать/получить с учётом комиссии:write:
Вопрос: Как мне всё это реализовать? Я понимаю, что это достаточно таки просто, но я не совсем хорошо знаю JavaScript т.к. усиленно учу PHP:help: |
Здравствуйте!
Судя по вашему сообщению, вы ну совсем не знаете javascript. Освойте основы языка и вопрос отпадет сам, полностью или частично. А с чем не справитесь - поможем. На сайте javascript можно начать изучать с учебника, раздел Основы javascript. Возможно, вам также понадобится HTML - учебник есть, например, здесь: http://ru.html.net/tutorials/html/ Задавайте конкретные вопросы по ходу дела. |
после PHP javascript кажется чем-то вот таким - :blink: И да, вы правы, я совсем его не знаю :-?
|
Цитата:
|
function recalculate(operation, side) { switch(operation) { case 'z_to_r': var z = Math.round(document.zr.z_to_r_z.value*100)/100; var r = Math.round(document.zr.z_to_r_r.value*100)/100; if(side) { var new_r = Math.round((z*kursZR-z*kursZR*comissZR/100)*100)/100; if(new_r > maxR) { alert("В данный момент мы можем предложить только "+maxR+" WMR."); new_r = maxR; document.zr.z_to_r_z.value=Math.round((new_r/kursZR+new_r/kursZR*comissZR/100)*100)/100; } document.zr.z_to_r_r.value=new_r; } else { if(r > maxR) { alert("В данный момент мы можем предложить только "+maxR+" WMR."); r = maxR; document.zr.z_to_r_r.value=r; } document.zr.z_to_r_z.value=Math.round((r/kursZR+r/kursZR*comissZR/100)*100)/100; } break; case 'e_to_r': var e = Math.round(document.er.e_to_r_e.value*100)/100; var r = Math.round(document.er.e_to_r_r.value*100)/100; if(side) { var new_r = Math.round((e*kursER-e*kursER*comissER/100)*100)/100; if(new_r > maxR) { alert("В данный момент мы можем предложить только "+maxR+" WMR."); new_r = maxR; document.er.e_to_r_e.value=Math.round((new_r/kursER+new_r/kursER*comissER/100)*100)/100; } document.er.e_to_r_r.value=new_r; } else { if(r > maxR) { alert("В данный момент мы можем предложить только "+maxR+" WMR."); r = maxR; document.er.e_to_r_r.value=r; } document.er.e_to_r_e.value=Math.round((r/kursER+r/kursER*comissER/100)*100)/100; } break; case 'r_to_z': var r = Math.round(document.rz.r_to_z_r.value*100)/100; var z = Math.round(document.rz.r_to_z_z.value*100)/100; if(side) { var new_z = Math.round((r/kursZR-r/kursZR*comissRZ/100)*100)/100; if(new_z > maxZ) { alert("В данный момент мы можем предложить только "+maxZ+" WMZ."); new_z = maxZ; document.rz.r_to_z_r.value=Math.round((new_z*kursZR+new_z*kursZR*comissRZ/100)*100)/100; } document.rz.r_to_z_z.value=new_z; } else { if(z > maxZ) { alert("В данный момент мы можем предложить только "+maxZ+" WMZ."); z = maxZ; document.rz.r_to_z_z.value=z; } document.rz.r_to_z_r.value=Math.round((z*kursZR+z*kursZR*comissRZ/100)*100)/100; } break; case 'e_to_z': var e = Math.round(document.ez.e_to_z_e.value*100)/100; var z = Math.round(document.ez.e_to_z_z.value*100)/100; if(side) { var new_z = Math.round((e/kursZE-e/kursZE*comissEZ/100)*100)/100; if(new_z > maxZ) { alert("В данный момент мы можем предложить только "+maxZ+" WMZ."); new_z = maxZ; document.ez.e_to_z_e.value=Math.round((new_z*kursZE+new_z*kursZE*comissEZ/100)*100)/100; } document.ez.e_to_z_z.value=new_z; } else { if(z > maxZ) { alert("В данный момент мы можем предложить только "+maxZ+" WMZ."); z = maxZ; document.ez.e_to_z_z.value=z; } document.ez.e_to_z_e.value=Math.round((z*kursZE+z*kursZE*comissEZ/100)*100)/100; } break; case 'r_to_e': var r = Math.round(document.re.r_to_e_r.value*100)/100; var e = Math.round(document.re.r_to_e_e.value*100)/100; if(side) { var new_e = Math.round((r/kursER-r/kursER*comissRE/100)*100)/100; if(new_e > maxE) { alert("В данный момент мы можем предложить только "+maxE+" WME."); new_e = maxE; document.re.r_to_e_r.value=Math.round((new_e*kursER+new_e*kursER*comissRE/100)*100)/100; } document.re.r_to_e_e.value=new_e; } else { if(e > maxE) { alert("В данный момент мы можем предложить только "+maxE+" WME."); e = maxE; document.re.r_to_e_e.value=e; } document.re.r_to_e_r.value=Math.round((e*kursER+e*kursER*comissRE/100)*100)/100; } break; case 'z_to_e': var z = Math.round(document.ze.z_to_e_z.value*100)/100; var e = Math.round(document.ze.z_to_e_e.value*100)/100; if(side) { var new_e = Math.round((z*kursZE-z*kursZE*comissZE/100)*100)/100; if(new_e > maxE) { alert("В данный момент мы можем предложить только "+maxE+" WME."); new_e = maxE; document.ze.z_to_e_z.value=Math.round((new_e/kursZE+new_e/kursZE*comissZE/100)*100)/100; } document.ze.z_to_e_e.value=new_e; } else { if(e > maxE) { alert("В данный момент мы можем предложить только "+maxE+" WME."); e = maxE; document.ze.z_to_e_e.value=e; } document.ze.z_to_e_z.value=Math.round((e/kursZE+e/kursZE*comissZE/100)*100)/100; } break; default: break; } } function submit_form(operation) { switch(operation) { case 'z_to_r': Invoice = document.zr.z_to_r_z.value; Amount = document.zr.z_to_r_r.value; document.zr.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; case 'e_to_r': Invoice = document.er.e_to_r_e.value; Amount = document.er.e_to_r_r.value; document.er.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; case 'r_to_z': Invoice = document.rz.r_to_z_r.value; Amount = document.rz.r_to_z_z.value; document.rz.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; case 'e_to_z': Invoice = document.ez.e_to_z_e.value; Amount = document.ez.e_to_z_z.value; document.ez.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; case 'r_to_e': Invoice = document.re.r_to_e_r.value; Amount = document.re.r_to_e_e.value; document.re.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; case 'z_to_e': Invoice = document.ze.z_to_e_z.value; Amount = document.ze.z_to_e_e.value; document.ze.Invoice.value = Invoice; if((!Invoice) || (Invoice == "") || (Invoice == 0)) { alert("Укажите сумму к обмену!"); return false; } else { if(isNaN(Invoice) || isNaN(Amount)) { alert("При вводе суммы используйте только цифры и в качестве разделителя точку."); return false; } else { return true; } } break; default: break; } } Если можно - объясните мне, что здесь к чему обращается и как оно работает (нашёл скрипт в сети), с внешнего вида кода - вижу, что это оно. :yes: И как этот кода заставить работать ? |
Цитата:
|
Часовой пояс GMT +3, время: 07:37. |