Калькулятор потолков-код почти готов
Вложений: 1
Скоро сдавать сайт, а у меня не готов калькулятор потолков. Прайс прикрепил.
Нужно: Вводишь площадь-выбираешь материал-выводит стоимость и страна производителя. Помогите плз, код почти готов, в чем ошибка? <script type="text/javascript">var re=/d+/ function proverka(form) { if (re=="") { return false } if (re.test(form.value)) { return true } else { alert("Введите число") form.focus() form.selected() return false } } function price(form){ var dlina=(form.dlina.value); var shirina=(form.shirina.value); var total = dlina*shirina; form.ttogo.value=total; } function ochistit(form) { dlina=(form.dlina.value=" ") shirina=(form.shirina.value=" ") ttogo=(form.ttogo.value=" ") } function ochistitone(form) { ploshad=(form.ploshad.value=" ") itogo=(form.itogo.value=" ") proiz=(form.proiz.value=" ") var r = document.getElementById('frt'); r.style.display='none'; } function priceone(form){ var ploshad=(form.ploshad.value); if (ploshad <6) { if (form.faktura[0].selected){ var faktura=850; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=850; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=850; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=850; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=950; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=800; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=1200; form.proiz.value="Германия"; } else if (form.faktura[10].selected) { var faktura=1350; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1450; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } else if (ploshad > 6 && ploshad <=9){ if (form.faktura[0].selected){ var faktura=700; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=700; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=700; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=700; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=750; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=750; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=800; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=1100; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=600; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=1000; form.proiz.value="Германия"; } else if (form.faktura[10].selected) { var faktura=1250; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1350; form.proiz.value="Германия"; } else if (ploshad > 10 && ploshad <14){ if (form.faktura[0].selected){ var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=650; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=650; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=700; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=450; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[10].selected) { var faktura=1150; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1250; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } else if (ploshad => 15 && ploshad <=19){ if (form.faktura[0].selected){ var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=575; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=575; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=625; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=430; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=850; form.proiz.value="Германия"; } else if (form.faktura[10].selected) { var faktura=1000; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1100; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } else if (ploshad => 20 && ploshad <=24){ if (form.faktura[0].selected){ var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=565; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=565; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=615; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=430; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=850; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1000; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1150; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } else if (ploshad > 25 && ploshad <=29){ if (form.faktura[0].selected){ if (form.faktura[0].selected){ var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=555; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=555; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=605; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=430; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=850; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1000; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1150; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } } else if (ploshad > 30) if (form.faktura[0].selected){ var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[1].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[2].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[3].selected) { var faktura=550; form.proiz.value="Франция"; } else if (form.faktura[4].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[5].selected) { var faktura=550; form.proiz.value="Германия"; } else if (form.faktura[6].selected) { var faktura=600; form.proiz.value="Германия"; } else if (form.faktura[7].selected) { var faktura=900; form.proiz.value="Германия"; } else if (form.faktura[8].selected) { var faktura=430; form.proiz.value="Россия,Тайланд"; } else if (form.faktura[9].selected) { var faktura=850; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1100; form.proiz.value="Германия"; } else if (form.faktura[11].selected) { var faktura=1100; form.proiz.value="Германия"; } var total = ploshad*faktura; form.itogo.value=total; } }</script> |
<h3 style="text-align:center">Расчет стоимости натяжных потолков</h3>
<form name="formone"> <table width="450" border="0" cellspacing="0" cellpadding="0" class="rom"> <tr> <td class="nah">Введите площадь :</td> <td ><input type="text" name="ploshad" value="" class="plo"/> кв.м.</td> </tr> <tr> <td class="nah">Выбирите фактуру</td> <td> <select name="faktura" class="sel"> <option name="faktura" id="0" selected="selected">Глянец цветной (Лакфоли)</option> <option name="faktura" id="1" selected="selected">Глянец белый (Ринолит)</option> <option name="faktura" id="2" selected="selected">Сатин цветной (Лакфоли)</option> <option name="faktura" id="3" selected="selected">Матовое цветное (Лакфоли)</option> <option name="faktura" id="4" selected="selected">Белый (Ринолит)</option> <option name="faktura" id="5" selected="selected">Сатин/мат.белый (Ринолит)</option> <option name="faktura" id="6" selected="selected">Матовое цветное (Ринолит)</option> <option name="faktura" id="7" selected="selected">Галактика (Голландия)</option> <option name="faktura" id="5" selected="selected">Глянец (Россия,Тайланд,Тайланд)</option> <option name="faktura" id="9" selected="selected">Ткань белая (Дескор)</option> <option name="faktura" id="10"selected="selected">Ткани белая (Клипсо)</option> <option name="faktura" id="11"selected="selected">Ткань цветная (Клипсо)</option> </select> </td> </tr> <tr> <td class="nah">Производитель :</td> <td ><input type="text" name="proiz" value="" class="pro"/></td> </tr> <tr> <td class="med">Итого :</td> <td><input name="itogo" value="" class="togo"><input type="button" value="считать" class="but" onclick="priceone(this.form)"/><input type="button" value="очистить" class="but" onClick="ochistitone(this.form)"/> </td> </tr> </table> |
Пожалуйста, отформатируйте свой код!
Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
Включите в браузере вывод ошибок и консоль разработчика
|
Цитата:
|
Вложений: 1
Как мне написать такой калькулятор, как в прайсе (прикрепил)?
С чего начать? Заранее спасибо |
может есть уже готовые решения импорта из excel?
|
ЖЕЕЕЕСТЬ
|
<script language="JavaScript"> <!-- // цены, позиция в массиве соответствует // значению в select для выбора фактуры var price1 = []; // менее 6 var price2 = []; // 6-9 var price3 = []; // 10-14 var price4 = []; // 15-19 var price5 = []; // 20-24 var price6 = []; // 25-29 var price7 = []; // более 30 var misc = []; price1[1] = 850; price2[1] = 700; price3[1] = 550; price4[1] = 550;price5[1] = 550;price6[1] = 550;price7[1] = 550; price1[2] = 850; price2[2] = 700; price3[2] = 550; price4[2] = 550;price5[2] = 550;price6[2] = 550;price7[2] = 550; price1[3] = 850; price2[3] = 700; price3[3] = 550; price4[3] = 550;price5[3] = 550;price6[3] = 550;price7[3] = 550; price1[4] = 850; price2[4] = 700; price3[4] = 550; price4[4] = 550;price5[4] = 550;price6[4] = 550;price7[4] = 550; price1[5] = 900; price2[5] = 750; price3[5] = 650; price4[5] = 575;price5[5] = 565;price6[5] = 555;price7[5] = 550; price1[6] = 950; price2[6] = 800; price3[6] = 680; price4[6] = 890;price5[6] = 890;price6[6] = 890;price7[6] = 600; price1[7] = 1300; price2[7] = 1100; price3[7] = 900; price4[7] = 900;price5[7] = 900;price6[7] = 900;price7[7] = 900; price1[8] = 800; price2[8] = 600; price3[8] = 450; price4[8] = 430;price5[8] = 430;price6[8] = 430;price7[8] = 430; price1[9] = 1200; price2[9] = 1000; price3[9] = 900; price4[9] = 850;price5[9] = 850;price6[9] = 850;price7[9] = 850; price1[10] = 1350; price2[10] = 1250; price3[10] = 1100; price4[10] = 1000;price5[10] = 1000;price6[10] = 1000;price7[10] = 1000; price1[11] = 1450; price2[11] = 1350; price3[11] = 1250; price4[11] = 1100;price5[11] = 1100;price6[11] = 1100;price7[11] = 1100; misc[1] = 500; // Подключение люстры,шт misc[2] = 250; // Точечный светильник,точка misc[3] = 450; // Светильник с лампой,шт misc[4] = 150; // Обход трубы,шт misc[5] = 150; // Дополнительный угол,шт misc[6] = 550; // Криволинейный участок misc[7] = 300; // Потолочная гардина misc[8] = 300; // Брус 4*5, пог м misc[9] = 500; // Прямой разделительный багет, 1 уровень // углы misc[10] = 150; // до 4 misc[11] = 150; // от 5 углов misc[12] = 150; // от 11 углов function calc() { var itm = tools.faktura.value; var squ = Number(tools.squ.value); if (squ == 0) { tools.squ.focus(); alert("Вы не указали метраж потолка."); return false; } var cor = Number(tools.cor.value); if (cor == 0) { tools.cor.focus(); alert("Вы не указали количество углов."); return false; } var tru= Number(tools.tru.value); //if (tru == 0) //{ // tools.tru.focus(); // alert("Вы не указали количество труб."); // return false; //} var len= Number(tools.len.value); //if (len == 0) //{ // tools.len.focus(); // alert("Вы не указали периметр."); // return false; //} var klus= Number(tools.klus.value); //if (lus == 0) //{ // tools.klus.focus(); // alert("Вы не указали количество люстр."); // return false; //} var plus= Number(tools.plus.value); //if (lus == 0) //{ // tools.plus.focus(); // alert("Вы не указали количество люстр."); // return false; //} var sve = Number(tools.sve.value); //if (pro == 0) //{ // tools.sve.focus(); // alert("Вы не указали количество светильников."); // return false; //} var pro = Number(tools.pro.value); //if (pro == 0) //{ // tools.pro.focus(); // alert("Вы не указали количество проводки."); // return false; //} var res = sve*misc[1] + klus*misc[2] + tru*misc[4] + pro*misc[9] + plus*misc[3]; if (cor < 6) cor_val = misc[10]; if (cor >= 6 && cor <= 11) cor_val = misc[11]; if (cor > 11) cor_val = misc[12]; if (squ < 5) squ_val = price4[itm]; if (squ >= 5 && squ <= 10) squ_val = price3[itm]; if (squ > 10 && squ <= 20) squ_val = price2[itm]; if (squ > 20) squ_val = price1[itm]; var res1 = 0; res1 = (cor-4)*cor_val + squ*squ_val; var res2 = 0 res2 = len*misc[5] var res3 = 0; res3 = res + res1 + res2; window.document.getElementById('price').innerHTML = '<b>Суммарная стоимость потолка включая монтаж</b><br> ' + '- освещение и трубы: ' + res + ' руб.<br>' + '- полотно: ' + res1 + ' руб.<br>' + '- потолочная гардина: ' + res2 + ' руб.<br>' + '---------------------------------<br>' + 'Итого <b>' + res3 +' руб.</b>'; return false; } //--> </script> <form name=tools> <br> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif">Фактура</font></b><br> <select name=faktura> <option value=1>Глянец цветной Франция(Лакфоли)</option> <option value=2>Глянец белый Германия(Ринолит)</option> <option value=3>Сатин цветной Франция (Лакфоли)</option> <option value=4>Матовое цыетное Франция (Лакфоли)</option> <option value=5>Белый(г.,м.,с) Германия (Ринолит)</option> <option value=6>Матовое цветное Германия(Ринолит)</option> <option value=7>Галактика Голландия</option> <option value=8>Глянец Россия,Тайланд</option> <option value=9>Ткань белая Германия (Дескор)</option> <option value=10>Ткань белая Германия(Клипсо)</option> <option value=11>Ткань цветная Германия(Клипсо)</option> </select> <br> <br> <table cellpadding=5 cellspacing=0 border=0 width=500> <tr> <td width=230 align=right> <p align="left">Площадь</p> </td> <td width="250"> <p> <input name="squ" type="text" size="7"> м<sup>2</sup></p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Сколько углов</p> </td> <td> <p> <input name="cor" type="text" size="7"> шт</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Точечный светильник</p> </td> <td> <p> <input name="tru" type="text" size="7"> шт</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Потолочная гардина</p> </td> <td> <p> <input name="len" type="text" size="7"> пог.м.</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Обход трубы</p> </td> <td> <p> <input name="klus" type="text" size="7"> шт</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Подключение люстры</p> </td> <td> <p> <input name="plus" type="text" size="7"> шт</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Светильники</p> </td> <td> <p> <input name="sve" type="text" size="7"> шт</p> </td> </tr> <tr> <td width=230 align=right> <p align="left">Потолочная гардина</p> </td> <td> <p> <input name="pro" type="text" size="7"> пог.м</p> </td> </tr> <tr> <td width=230 align=right></td> <td></td> </tr> </table> <br> </div> <p align="center"> <input name="button" type=button onClick="calc()" value='Рассчитать'> </p> </form> <p align="center"> <span id='price'></span> </script> |
отдельно работает, в в joomla через jumi не считает, что может быть?
|
Часовой пояс GMT +3, время: 07:04. |