Показать сообщение отдельно
  #8 (permalink)  
Старый 15.07.2014, 14:02
Новичок на форуме
Отправить личное сообщение для Шерапет Посмотреть профиль Найти все сообщения от Шерапет
 
Регистрация: 15.07.2014
Сообщений: 1

Всем привет!
Помогите пожалуйста разобраться с формой подсчета светового короба. Три дня подряд колдую, не могу понять где в коде собака порылась?
Суть проблемы в следующем:
Если указать параметры ширины и высоты, то показатель общей площади выводится верно. Далее выбираем форму короба, затем материал рекламной поверхности, тип подсветки и количество "1" шт., общая стоимость выводится верно, а показатель стоимости со скидкой дублирует стоимость без скидки. Но это еще пол беды.
Когда меняешь количество общая стоимость начинает врать. Причем, когда меняешь ширину и высоту при выбранном количестве "1" шт. снова показатели общей стоимости выводятся правильно.
Обнаружил еще косяк, который, судя по всему, и является причиной ошибки в подсчете: если не указывать габариты и количество штук, а выбрать только пункты из вкладок "Форма светового короба", "Материал рекламной поверхности" и "Тип подсветки", то в поле "Цена за 1 кв. м" появится действительная и правильная сумма. И вот эта самая сумма в дальнейшем, постоянно прибавляется к уже правильной сумме обшей стоимости.
Не знаю получилось ли у меня понятным для всех языком изложить суть проблемы?
Помогите, пожалуйста!
----------------------------
Код формы:
<style>
.input {
border: 1px solid #B4B4B4;
border-radius: 6px;
color: #000000;
padding-left: 4px;
}
</style>
<div class="form_descr"></div>
<form action="index.php" name="calcForm" id="calcForm" method="post">
<script>
function getImg(param, obj, mat_obj)
{
if(mat_obj=='profil')
{
switch(param){
case '2':
document.getElementById(obj).src = '/images/FormCalc/Forma.jpg';
document.getElementById("profil_hid").value="0";
break;
case '3':
document.getElementById(obj).src = '/images/FormCalc/profil_ag77.jpg';
document.getElementById("profil_hid").value="800";
break;
case '4':
document.getElementById(obj).src = '/images/FormCalc/profil_aer56.jpg';
document.getElementById("profil_hid").value="800";
break;
case '5':
document.getElementById(obj).src = '/images/FormCalc/profil_aer44.jpg';
document.getElementById("profil_hid").value="800";
break;
}
document.forms['calcForm'].elements['profil_hid'].fireEvent('change');
}
if(mat_obj=='upr')
{
switch(param){
case '2':
document.getElementById(obj).src = '/images/FormCalc/Material.jpg';
document.getElementById("upr_hid").value="0";
break;
case '3':
document.getElementById(obj).src = '/images/FormCalc/privod2.jpg';
document.getElementById("upr_hid").value="3200";
break;
case '4':
document.getElementById(obj).src = '/images/FormCalc/privod3.jpg';
document.getElementById("upr_hid").value="3700";
break;
case '5':
document.getElementById(obj).src = '/images/FormCalc/privod2.jpg';
document.getElementById("upr_hid").value="4700";
break;
case '6':
document.getElementById(obj).src = '/images/FormCalc/privod1.jpg';
document.getElementById("upr_hid").value="5700";
break;
}
document.forms['calcForm'].elements['upr_hid'].fireEvent('change');
}
if(mat_obj=='ustan')
{
switch(param){
case '2':
document.getElementById(obj).src = '/images/FormCalc/Podsvetka.jpg';
document.getElementById("ustan_hid").value="0";
break;
case '3':
document.getElementById(obj).src = '/images/FormCalc/rolstavni_montag02.jpg';
document.getElementById("ustan_hid").value="2000";
break;
case '4':
document.getElementById(obj).src = '/images/FormCalc/rolstavni_montag01.jpg';
document.getElementById("ustan_hid").value="4800";
break;
}
document.forms['calcForm'].elements['ustan_hid'].fireEvent('change');
}
}
</script>
<input type="hidden" name="profil_hid" id="profil_hid">
<input type="hidden" name="upr_hid" id="upr_hid">
<input type="hidden" name="ustan_hid" id="ustan_hid" >
<h2>Расчет стоимости световых и несветовых коробов</h2>
<table border="0" cellpadding="0" cellspacing="5">
<tbody><tr style="padding-top: 15px;">
<td>
Ширина:
<br>
<input class="input" size="5" name="width" value=""> см.
</td>
<td rowspan="7" valign="middle" align="center">
<img src="/images/FormCalc/Forma.jpg" alt="" id="profkart" width="384" border="0" height="164">
<br>
<img src="/images/FormCalc/Material.jpg" alt="" name="privkart" id="privkart" width="384" border="0" height="164">
<br>
<img src="/images/FormCalc/Podsvetka.jpg" alt="" name="montkart" id="montkart" style="margin-left: 10px;" width="374" border="0" height="150">
</td>
</tr>
<tr>
<td>
Высота:
<br>
<input class="input" size="5" name="height" value=""> см.
</td>
</tr>
<tr>
<td>
Форма светового короба:
<br>
<select class="input" name="profil" id="profil" onchange="getImg(this.value, 'profkart','profil');">
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Короб простой формы</option>
<option value="4">Формы средней сложности</option>
<option value="5">Произвольные формы</option>
</select>
</td>
</tr>
<td valign="bottom">
Материал рекламной поверхности:&nbsp;
<br>
<select class="input" name="upr" id="upr" onchange="getImg(this.value, 'privkart','upr');" >
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Баннер</option>
<option value="4">Сотовый поликарбонат</option>
<option value="5">Оргстекло (акрил)</option>
<option value="6">Композит</option>
</select>
</td>
</tr>
<tr>
<td>
Тип подсветки:
<br>
<select class="input" name="ustan" id="ustan" onchange="getImg(this.value, 'montkart','ustan');">
<option value="2" selected="selected">=Не выбрано=</option>
<option value="3">Люминесцентные лампы</option>
<option value="4">Светодиодные модули</option>
</select>
</td>
</tr>
<tr>
<td>
Количество:
<br>
<input class="input" size="5" value="0" name="kolvo"> шт.
</td>
</tr>
<tr>
<td colspan="2" valign="bottom" height="50">
<input onclick="document.forms['calcForm'].elements['ustan_hid'].fireEvent('change')" value="Посчитать" type="button" name="option" class="button">
<br>
<input class="button" type="reset" name="reset" value="Очистить" onclick="change(),newdoc()" />
</td>
</tr>
</tbody></table>
<div>
Площадь конструкции: <span id="rez3_disp">&nbsp;</span><input type="hidden" id="rez3" name="rez3" value=""/> кв.м
<br>
Цена за 1 кв. м: <span id="rez4_disp">&nbsp;</span><input type="hidden" id="rez4" name="rez4" value=""/> руб
<br>
Цена со скидкой 5%: - <span id="rez2_disp">&nbsp;</span><input type="hidden" id="rez2" name="rez2" value=""/> руб
<br>
Цена без скидки <span id="rez1_disp">&nbsp;</span><input type="hidden" id="rez1" name="rez1" value=""/> руб<br>
</div>
<div name="rast" id="rast">
</div>
<br>
<p>При оформлении предварительного заказа через интернет, Вы получаете скидку 5% на изготовление наружной рекламы.</p>
<p>Изготовление наружной и интерьерной рекламы можно заказать прямо сейчас, кликнув на кнопке «Отправить». Наши специалисты помогут Вам выбрать тип рекламной конструкции, качественные и недорогие материалы для ее изготовления, произведут замеры и монтаж рекламных конструкций.</p>
--------------------------------------------
Формула подсчета:

rez1=(({profil_hid}+{upr_hid}+{ustan_hid})*{rez3}) *{kolvo}
rez2=({rez3}*({profil_hid}+{upr_hid}+{ustan_hid})* {kolvo})-{skidka}
rez3=(({width}*{height})*{kolvo})/10000
rez4={profil_hid}+{upr_hid}+{ustan_hid}
skidka=(0.05*{rez3}*({profil_hid}+{upr_hid}+{ustan _hid})*{kolvo})
Ответить с цитированием