Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подсчет по формуле
 
 автор: Я   (26.04.2007 в 20:55)   письмо автору
 
 

Здравствуйте!

Срочно понадобилось составить решение одной формулы на JS. На PHP бы сам сделал, но тут именно с JS нужно связать, а я пока его не настолько хорошо знаю.

Суть такая:
___________________________________________________
U=(C1q1+C2q2+C3q3+...+Cnqn)+(A1b1+A2b2+A3b3+...+Akbk)+G(1+b1+b2+b3)-H - сама формула

Где C1, C2, C3... Cn - стоимость единицы продукции
q1,q2,q3...qn - расход на ее производство

A1, A2, A3...Ak - стоимость комплектующего изделия
b1,b2,b3...bk - расход на ее производство

G - объем зарплаты персонала

B1,B2,B3 - платежи

H - стоимость возвратных средств
___________________________________________________

Пользователь вводит все переменные. При этом он сначала должен выбрать количество продукции (n) и количество изделий (k). Затем перед ним должны появится текстовые поля, количество которых и вводил пользователь. Я предполагаю, что вид страницы должен быть такой:

Продукция <input type=text name=C1> - Стоимость <input type=text name=q1>
<br>
Продукция <input type=text name=C2> - Стоимость <input type=text name=q2>
...
Продукция <input type=text name=Cn> - Стоимость <input type=text name=qn>
<br><br>
Комплектующее <input type=text name=A1> - Стоимость <input type=text name=b1>
<br>
Комплектующее <input type=text name=A2> - Стоимость <input type=text name=b2>
...
Комплектующее <input type=text name=Ak> - Стоимость <input type=text name=bk>
<br><br>
Объем зарплаты персонала: <input type=text name=G>
<br><br>
Платежи:
<br>
<input type=text name=B1>
<br>
<input type=text name=B2>
<br>
<input type=text name=B3>
<br><br>
Стоимость возвратных средств: <input type=text name=H>
<br><br>
<input type=submit name=ok value="Подсчет">
<br><br>
Итог: <input type=text name=itog>
</form>

А потом по нажатию SUBMIT формы в каком-то текстовом поле должен появиться результат.
Главная сложность этого скрипта - реализация в одном файле и, по возможности, без видимого обновления страницы.

Всем, кто поможет, буду оооочень благодарен!

   
 
 автор: Sl   (27.04.2007 в 06:34)   письмо автору
 
   для: Я   (26.04.2007 в 20:55)
 

Можно сделать таким образом ... Вычисляет без обновления страницы


<script type='text/javascript'>
var d = document;
function Itog() {
  vC1 = d.forms[0].C1.value;
  vC2 = d.forms[0].C2.value;
  vCn = d.forms[0].Cn.value;
  
  vq1 = d.forms[0].q1.value;
  vq2 = d.forms[0].q2.value;
  vqn = d.forms[0].qn.value;
  
  vA1 = d.forms[0].A1.value;
  vA2 = d.forms[0].A2.value;
  vAk = d.forms[0].Ak.value;
  
  vb1 = d.forms[0].b1.value;
  vb2 = d.forms[0].b2.value;
  vbk = d.forms[0].bk.value;
  
  vG = d.forms[0].G.value;
  
  vB1 = d.forms[0].B1.value;
  vB2 = d.forms[0].B2.value;
  vB3 = d.forms[0].B3.value;
  
  vH = d.forms[0].H.value;
  var U = (vC1*vq1 + vC2*vq2 + vCn*vqn)+(vA1*vb1 + vA2*vb2 + vAk*vbk)+(vG*(1+vb1+vb2))-vH
  
  d.forms[0].itog.value = U;
}
</script>
<form name=post>
Продукция <input type=text name=C1> - Стоимость <input type=text name=q1> 
<br> 
Продукция <input type=text name=C2> - Стоимость <input type=text name=q2> 
... 
Продукция <input type=text name=Cn> - Стоимость <input type=text name=qn> 
<br><br> 
Комплектующее <input type=text name=A1> - Стоимость <input type=text name=b1> 
<br> 
Комплектующее <input type=text name=A2> - Стоимость <input type=text name=b2> 
... 
Комплектующее <input type=text name=Ak> - Стоимость <input type=text name=bk> 
<br><br> 
Объем зарплаты персонала: <input type=text name=G> 
<br><br> 
Платежи: 
<br> 
<input type=text name=B1> 
<br> 
<input type=text name=B2> 
<br> 
<input type=text name=B3> 
<br><br> 
Стоимость возвратных средств: <input type=text name=H> 
<br><br> 
<input type=button name=ok value="Подсчет" onclick="Itog()"> 
<br><br> 
Итог: <input type=text name=itog> 
</form>


Скрипт работает в IE, в остальных не знаю как. Сам подсчет формулы может и не верный, но суть думаю ясна :)

   
 
 автор: ilyaILF   (27.04.2007 в 07:40)   письмо автору
3.5 Кб
 
   для: Sl   (27.04.2007 в 06:34)
 

Мультиброузерный вариант с точным расчетом ))) в прикрепленном файле.
P.S. И использование в названиях элементов формы одинаковых букв, пусть даже в разном регистре (B1 и b1) все-равно может привести к ошибкам вычисления, поэтому для названий name лучше использовать все же разные буквы.

   
 
 автор: Я   (05.05.2007 в 19:36)   письмо автору
 
   для: ilyaILF   (27.04.2007 в 07:40)
 

Спасибо огромное! Последний вариант - именно то, что мне было нужно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования