Значит ситуация такая Имеется скрипт калькулятора, который подчитывает стоимость оборудования и так далее. Пример здесь http://www.paintworld.ru/order_foresta.htm для тех у кого нет инетa имеется кнопка РАСЧИТАТЬ при нажатии на нее подсчитывается стоимость я решил для удобства сделать меню тэгом <select> вот как выглядит:
| Код | <select name="beer" id=baza> <option selected value="viezd">Выезд</option> <option value="grigorchikovo">Григорчиково</option> <option value="foresta">Фореста</option> <option value="troparevo">Тропарево</option> </select> Вот скрипт калькулятора:
<script language=javascript> function GetInfo() { f1 = document.forms['calc']; f2 = document.forms['order'];
if(window.confirm('Вы уверены, что хотите скопировать информацию из калькулятора\nв форму заказа?')) { f2.date.value = f1.date.value; f2.ppl.value = f1.ppl.value; f2.st.value = f1.st.value; f2.box.value = f1.box.value; f2.long.value = f1.long.value; f2.armor.value = f1.armor.value; f2.safe.value = f1.safe.value; f2.sport.value = f1.sport.value; } }
function CheckForm() { f = document.forms['order'];
var c_errors = 0; var t_errors = new(Array);
if(f.item('date').value.length < 1) { t_errors[c_errors] = 'Не введена дата заезда'; c_errors++; } if(f.item('time').value.length < 1) { t_errors[c_errors] = 'Не введено время заезда'; c_errors++; } if(f.item('phone').value.length < 1) { t_errors[c_errors] = 'Не введен контактный телефон'; c_errors++; } if(f.item('fio').value.length < 1) { t_errors[c_errors] = 'Не введены данные о контактном лице'; c_errors++; } if(f.item('ppl').value.length < 1) { t_errors[c_errors] = 'Не введено количество игроков'; c_errors++; } if(f.item('box').value.length < 1) { t_errors[c_errors] = 'Не введено количество коробок шаров'; c_errors++; }
// Show error message if(c_errors > 0) { var er_text = ''; for(i = 0; i < c_errors; i++) { er_text = er_text + (i+1) + ". " + t_errors[i] + "\n"; } window.alert("Ошибка ввода (" + c_errors + "):\n" + er_text); return false; } else { f.item('order_now').disabled = true; return true; } return false; }
function DoIt() { // PRICES // n - normal; s - students; w - workday; h - holiday; b - below 31; a - above 31; var hire_nwb = 18; var hire_nwa = 16; var hire_nhb = 20; var hire_nha = 18; var hire_sw = 7; var hire_sh = 8;
var bx = 100; var bx6 = 75; var bx10 = 70;
var lng = 3; var arm = 1; var saf = 2; var sm = 10;
// DO NOT EDIT! f = document.forms['calc']; r = document.getElementById('result'); r.value = '';
date = f.date.value;
date_mod = date.split('-'); var dd = new Date(date_mod[2], date_mod[1]-1, date_mod[0]); weekday = dd.getDay();
ppl = f.ppl.value; ppl_sh = f.st.value; box = f.box.value; long = f.long.value; armor = f.armor.value; safe = f.safe.value; sport_marker = f.sport.value;
if(weekday == 0 || weekday == 6 || weekday == 5) { hire_normal = (ppl < 31 ? hire_nhb : hire_nha); hire_stud = hire_sh; } else { hire_normal = (ppl < 31 ? hire_nwb : hire_nwa); hire_stud = hire_sw;
}
if(box < 6) box_f = bx; else if(box < 10) box_f = bx6; else box_f = bx10;
// Расчет var sum = 0;
r.value = r.value + '==== ЗАЕЗД ====\n'; r.value = r.value + 'Дата: ' + date + '\n'; if(weekday == 0 || weekday == 6 || weekday == 5) r.value = r.value + 'Прокат считается по ценам выходного дня\n'; else r.value = r.value + 'Прокат считается по ценам рабочего дня\n'; r.value = r.value + '==== ПРОКАТ ====\n'; r.value = r.value + '-- Взрослых: ' + (ppl - ppl_sh) + ' [ $' + (tmp = (ppl - ppl_sh) * hire_normal) + ' ]\n'; sum = sum + tmp; r.value = r.value + '-- Студентов/детей: ' + ppl_sh + ' [ $' + (tmp = ppl_sh * hire_stud) + ' ]\n'; sum = sum + tmp;
r.value = r.value + '==== ШАРЫ ====\n'; r.value = r.value + '-- Коробок: ' + (box) + ' (' + (box * 2000) + ' шаров, по ' + Math.round(box * 2000 / ppl) + ' шаров на человека)' + ' [ $' + (tmp = (box * box_f)) + ' ]\n'; if(box > 5) r.value = r.value + 'Шары считаются по специальным ценам (более 5 коробок)\n'; sum = sum + tmp;
r.value = r.value + '==== ДРУГОЕ ====\n'; r.value = r.value + '-- Длинных стволов: ' + long + ' [ $' + (tmp = long * lng) + ' ]\n'; sum = sum + tmp; r.value = r.value + '-- Жилеты: ' + armor + ' [ $' + (tmp = armor * arm) + ' ]\n'; sum = sum + tmp; r.value = r.value + '-- Наколенники и налокотники: ' + safe + ' [ $' + (tmp = safe * saf) + ' ]\n'; sum = sum + tmp; r.value = r.value + '-- Спортивные маркеры: ' + sport_marker + ' [ $' + (tmp = sport_marker * sm) + ' ]\n'; sum = sum + tmp;
r.value = r.value + '\n==== ИТОГО ====\n'; r.value = r.value + 'Всего: $' + sum; } </SCRIPT> |
В общем, хочется чтобы при выборе в меню где тег <select><option> и при нажатии после на кнопку рассчитать, расчет ввелся по выбранной базе из меню. Попробовал прочитав с другого форума сделать в тэге <option value="http://www.paintworld.ru/order_troparevo.htm"> получается что считает но перекидывает на другую страницу. Кстати Код кнопки РАСЧИТАТЬ
| Код | <input id=doit onClick="top.location.href=this.form.beer.options[this.form.beer.selectedIndex].value;javascript: DoIt()" type=button value=Рассчитать name=doit> |
Спасибо всем огромное |