mastersound |
Отправлено: 11 августа 2009 — 05:16
|
Super Member
Покинул форум
Сообщений всего: 604
Дата рег-ции: Март 2009
Откуда: Ё-бург
Репутация: 23
|
Помогите, кто может. Нужен скрипт формы с заведенными в нее значениями, выбрав которые, посетитель жмет на кнопку "посчитать" и ему выводится итоговая сумма, т.н. "онлайн калькулятор". Надо для сайта типографии: порядка 10-15 видов продукции, тиражность (около 10), материал, способы нанесения изо на него и т.д., ну и стоимость этих позиций и обсчет итоговой суммы. Т.е. нужен сам скрипт для того, чтобы владелец сайта мог ввести исходные параметры (через админку с паролем или, покопавшись в скрипте, если сложно с админкой), а посетителю отдавалась форма. Есть такие наработки? Может это сложно на java - тогда как реализовать на php?
Как пример: http://www.master-poligraf.ru/ можно менее навороченный - только калькулятор, без дополнительных вкладок.
админу: в случае ответа с php скриптом - перенесите, плз., в соответствующую тему... спасибо.(Отредактировано автором: 11 августа 2009 — 05:32) |
|
|
1Bot |
Отправлено: 13 августа 2009 — 00:55
|
Super Member
Покинул форум
Сообщений всего: 773
Дата рег-ции: Апр. 2009
Откуда: Днепропетровск
Репутация: 69
|
mastersound пишет:Помогите, кто может. Нужен скрипт формы с заведенными в нее значениями, выбрав которые, посетитель жмет на кнопку "посчитать" и ему выводится итоговая сумма, т.н. "онлайн калькулятор" Вопрос не совсем понятен, в приведеном примере по адресу http://www.master-poligraf.ru/calc/25/ уже есть ответ - достаточно посмотреть код страницы, калькулятор реализован там на javascript
Спойлер (Отобразить)CODE:<-- форма для ввода данных ---------------------------------------------------->
<form name="form_top" id="form_top">
<table>
<tr >
<td class="top dt">Формат:</td>
<td id="dd_f" class="dd">
<select name="f" id="f" style="color:#056488;font-weight:bold">
<option value="1">A4 (210x297мм)</option>
<option value="0.6">A5 (210x148,5мм)</option>
<option value="0.35">A6 (105x148,5мм)</option>
<option value="0.45">евро (до 210х100мм)</option>
</select>
</td>
</tr>
<tr >
<td class="dt">Цветность:</td>
<td id="dd_cc" class="dd">
<select name="cc" id="cc">
<option value="0">нет</option>
<option value="1">1+0</option>
<option value="2">2+0</option>
<option value="3.5">3+0</option>
<option value="4">4+0</option>
<option value="2">1+1</option>
<option value="3">2+1</option>
<option value="4.5">3+1</option>
<option value="5.5">4+1</option>
<option value="3">1+2</option>
<option value="4">2+2</option>
<option value="7">3+2</option>
<option value="8">4+2</option>
</select>
</td>
</tr>
<tr >
<td class="dt">Количество слоев:</td>
<td id="dd_sl" class="dd">
<select name="sl" id="sl">
<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>
<option value="12">двенадцать слоев (не рекомендуем)</option>
</select>
</td>
</tr>
<tr >
<td class="dt">Склейка:</td>
<td id="dd_sk" class="dd">
<select name="sk" id="sk">
<option value="1">по-короткой стороне</option>
<option value="1.1">по-длинной стороне</option>
</select>
</td>
</tr>
<tr >
<td class="dt">Нумерация:</td>
<td id="dd_num" class="dd">
<select name="num" id="num">
<option value="0">нет</option>
<option value="1">да</option>
</select>
</td>
</tr>
<tr >
<td class="dt">Склеить в книжечки:</td>
<td id="dd_kn" class="dd">
<select name="kn" id="kn">
<option value="0">нет</option>
<option value="0.1">10 комплектов в книжке</option>
<option value="0.05">20 комплектов в книжке</option>
</select>
</td>
</tr>
<tr>
<td style="border:none"> </td>
<td style="border:none" id="dspl">
<input class="button2" type="submit" value="Подсчет" onclick="summa(this); return false;" />
</td>
</tr>
</table>
</form>
<-- алгоритм расчета суммы ----------------------------------------------------->
<script type="text/javascript">
function summa(button)
{
var sum = parseFloat($('dos').value) +
(0.007*parseFloat($('cc').value) * parseFloat($('sl').value) *
parseFloat($('f').value) +
20*parseFloat($('cc').value) + 15*parseFloat($('sl').value) +
0.025*parseFloat($('sl').value) * parseFloat($('f').value)) *
parseFloat($('sk').value) *
parseFloat($('per').value)*35 + (parseFloat($('num').value)*0.0075 +
20*parseFloat($('num').value))*35 +
parseFloat($('kn').value)*0.4)*35;
sum = sum.toString();
var tmp = (sum.indexOf('.') != -1) ? sum.substr(0, sum.indexOf('.')+3) : sum;
if (tmp == 'NaN' || tmp < 0) {
$('sum').value = 0;
alert('Вы выбрали не все обязательные поля!');
} else {
$('sum').value = tmp;
display();}
}
<-- вывод результата ----------------------------------------------------------->
function display()
{
var ids = ['f','cc','sl','sk','num','kn','per','dos'];
for(i = 0, j = ids.length; i < j; i++) {
var spanId = 'display_' + ids[i];
$(spanId).innerHTML = $(ids[i]).options[$(ids[i]).selectedIndex].text;
}
}
</script>
<div class="requestbox-top"><h3>ВАША ЗАЯВКА:</h3></div>
<div class="requestbox-bg">
<p>
<b style="font-weight:normal" >Формат: <span id="display_f">не выбрано</span><br/></b>
<b style="font-weight:normal" >Цветность: <span id="display_cc">не выбрано</span><br/></b>
<b style="font-weight:normal" >Количество слоев: <span id="display_sl">не выбрано</span><br/></b>
<b style="font-weight:normal" >Склейка: <span id="display_sk">не выбрано</span><br/></b>
<b style="font-weight:normal" >Нумерация: <span id="display_num">не выбрано</span><br/></b>
<b style="font-weight:normal" >Склеить в книжечки: <span id="display_kn">не выбрано</span><br/></b>
</p>
</div>
<div class="requestbox-bottom">
<form name="form_summ" id="form_summ">
СУММА (РУБ.): <input type="text" name="sum" id="sum" value="0" readonly="readonly" />
</form>
</div> |
|
|
Furax |
Отправлено: 13 августа 2009 — 12:17
|
Newbie
Покинул форум
Сообщений всего: 49
Дата рег-ции: Февр. 2009
Репутация: 8
|
Можно всю информацию зашить в скрипт, который будет подключен на нужной странице. Например, её можно представить в виде массива:CODE:var prices =
[
['Визитки', 50 /*рублей за штуку*/],
['Сердце вампира', 0.01],
['Грязная тряпка', 10000]
]; Рассчитать по этим данным, сколько будет стоить одна грязная тряпка, украшенная пятью сотнями сердец упырей и разукрашенная десятком визиток, для JavaScriptа не составит труда. Проблема лишь в том, что этот прайс придётся загружать каждому пользователю - если он большой, это будет неприятно. |
|
|
mastersound |
Отправлено: 13 августа 2009 — 12:54
|
Super Member
Покинул форум
Сообщений всего: 604
Дата рег-ции: Март 2009
Откуда: Ё-бург
Репутация: 23
|
Furax, спасибо большое за внимание к моей проблеме! Прайс будет подгружаться к выдаваемой форме? В типографии примерно 10 главных позиций, которые разбиваются на 15 подпозиций, которые, в свою очередь будут представлены ценой/тиражом или отдельной стоимостью за единицу изделия/просчет от произвольного кол-ва изделий (не фиксированные тиражи).... Этот файл будет тяжелым? Всей инфы, наверное, килобайт на 20-50 (судя по txt файлу)... чуть дольше будет генерироваться поле формы с результатами. Я смогу, наверное, и 10 таких форм, отдельно к каждой странице изделия, наподключать... Если по всем главным позициям - одну форму сделать, то тогда тяжеловат будет, если разделить, то грузиться будет именно тот раздел, который интересует посетителя. Один минус - лох я в Яве))) со скриптами (внедрением в html|php) я справлюсь? а вот сам жвижок - тёмный лес для меня. Уделите время для меня? Сочтемся))) |
|
|
|