Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2012, 07:10
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

Калькулятор потолков-код почти готов
Скоро сдавать сайт, а у меня не готов калькулятор потолков. Прайс прикрепил.
Нужно:
Вводишь площадь-выбираешь материал-выводит стоимость и страна производителя.
Помогите плз, код почти готов, в чем ошибка?
<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>
Изображения:
Тип файла: jpg kalk.jpg (26.9 Кб, 28 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2012, 07:11
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

<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>
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2012, 10:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #4 (permalink)  
Старый 30.01.2012, 10:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Включите в браузере вывод ошибок и консоль разработчика
Ответить с цитированием
  #5 (permalink)  
Старый 31.01.2012, 03:43
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от javame
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="Франция";
}
Слишком избыточно. Научитесь работать с data- атрибутами и событиями.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #6 (permalink)  
Старый 01.02.2012, 08:14
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

Как мне написать такой калькулятор, как в прайсе (прикрепил)?
С чего начать?
Заранее спасибо
Изображения:
Тип файла: jpg калькулятор.jpg (29.3 Кб, 22 просмотров)
Ответить с цитированием
  #7 (permalink)  
Старый 01.02.2012, 09:08
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

может есть уже готовые решения импорта из excel?
Ответить с цитированием
  #8 (permalink)  
Старый 01.02.2012, 09:11
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

ЖЕЕЕЕСТЬ
Ответить с цитированием
  #9 (permalink)  
Старый 02.02.2012, 06:49
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

<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">
&nbsp;м<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">
&nbsp;шт</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Точечный светильник</p>
</td>
<td> 
<p> 
<input name="tru" type="text" size="7">
&nbsp;шт</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Потолочная гардина</p>
</td>
<td> 
<p> 
<input name="len" type="text" size="7">
&nbsp;пог.м.</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Обход трубы</p>
</td>
<td> 
<p> 
<input name="klus" type="text" size="7">
&nbsp;шт</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Подключение люстры</p>
</td>
<td> 
<p> 
<input name="plus" type="text" size="7">
&nbsp;шт</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Светильники</p>
</td>
<td> 
<p> 
<input name="sve" type="text" size="7">
&nbsp;шт</p>
</td>
</tr>

<tr> 
<td width=230 align=right> 
<p align="left">Потолочная гардина</p>
</td>
<td> 
<p> 
<input name="pro" type="text" size="7">
&nbsp;пог.м</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>
Ответить с цитированием
  #10 (permalink)  
Старый 02.02.2012, 06:50
Новичок на форуме
Отправить личное сообщение для javame Посмотреть профиль Найти все сообщения от javame
 
Регистрация: 30.01.2012
Сообщений: 9

отдельно работает, в в joomla через jumi не считает, что может быть?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск