Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 21

Как реализовать ячейку ИТОГО:

12.06.2013, 20:50. Показов 1401. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделал все так как посоветовали на форуме. получился следующий скрипт

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function getSum()
{
 var var1 = parseFloat(document.getElementById('var_1').value);
 var var2 = parseFloat(document.getElementById('var_2').value);
 return document.getElementById('sum').value = var1 * var2;
}
function getSum1()
{
 var var3 = parseFloat(document.getElementById('piece1').value);
 var var4 = parseFloat(document.getElementById('price1').value);
 return document.getElementById('sum1').value = var3 * var4;
}
function itogo()
{
 var q = parseFloat(document.getElementById('sum').value);
 var w = parseFloat(document.getElementById('sum1').value);
 return document.getElementById('itogo').value = q + w;
}
PHP
1
2
3
4
5
6
7
8
9
<td><input name="piece" type="text" id="var_1" size="10" onKeyUp='getSum()'></td>
<td><input name="price" type="text" id="var_2" size="10" onKeyUp='getSum()'></td>
<td><input name="sum" type="text" id="sum" size="12" onKeyUp='itogo()'></td>
...
<td><input name="piece1" type="text" id="piece1" size="10" min="0" onKeyUp='getSum1()'></td>
<td><input name="price1" type="text" id="price1" size="10" min="0" onKeyUp='getSum1()'></td>
<td><input name="sum1" type="text" id="sum1" size="12" onKeyUp='itogo()'></td>
...
<input name="itogo" type="text" id="itogo" size="12">
По задумке в двух ячейках должны получаться результаты после перемножения и эти же результаты должны слаживаться в итоговой ячейке. Но что то не получается. Что не так? ПОДСКАЖИТЕ
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2013, 20:50
Ответы с готовыми решениями:

Форма содержит Таблицу и поле Итого. Если применить к Таблице фильтр, то как пересчитать поле Итого?
В форму встроена таблица. И есть отдельный контрол - поле Итого (для этой таблицы). Всё работает, но вот если применить к таблице...

Не могу додуматься, как реализовать ячейку памяти
Добрый день, У меня такая проблема: не могу реализовать ячейку памяти. Работа заключается в следующем: в память приходит сигнал,...

Как реализовать ячейку в виде кнопки-иконки в DataGridView?
В общем, есть у меня DataGridView, где последние две колонки типа DataGridViewButtonCollumn. Все отлично, но можно ли как-то сделать эти...

10
 Аватар для xadjek
36 / 36 / 14
Регистрация: 05.06.2011
Сообщений: 306
12.06.2013, 23:10
Цитата Сообщение от God1985 Посмотреть сообщение
По задумке в двух ячейках должны получаться результаты после перемножения и эти же результаты должны слаживаться в итоговой ячейке. Но что то не получается. Что не так? ПОДСКАЖИТЕ
может потому что вот эта строчка голая стоит? никаких обработчиков нет....
JavaScript
1
<input name="itogo" type="text" id="itogo" size="12">
Добавлено через 23 минуты
хм, вроде разобрался, что то с обработкой-добавил кнопку-и по щелчку по ней получается результат в ячейке итого
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Документ без названия</title>
<script type="text/javascript">
function getSum()
{
 var var1 = parseFloat(document.getElementById('var_1').value);
 var var2 = parseFloat(document.getElementById('var_2').value);
 return document.getElementById('sum').value = var1 * var2;
}
 
 
function getSum1()
{
 var var3 = parseFloat(document.getElementById('piece1').value);
 var var4 = parseFloat(document.getElementById('price1').value);
 return document.getElementById('sum1').value = var3 * var4;
}
function itogo()
{
 var q = parseFloat(document.getElementById('sum').value);
 var w = parseFloat(document.getElementById('sum1').value);
 return document.getElementById('itogo').value = q + w;
}
 
 
</script>
</head>
 
<body>
 
<td><input name="piece" type="text" id="var_1" size="10"></td>
<td><input name="price" type="text" id="var_2" size="10" onKeyUp='getSum()'></td>
<td><input name="sum" type="text" id="sum" size="12" onKeyUp='getSum()'></td><br>
 
 
<td><input name="piece1" type="text" id="piece1" size="10" min="0" ></td>
<td><input name="price1" type="text" id="price1" size="10" min="0" onKeyUp='getSum1()'></td>
<td><input name="sum1" type="text" id="sum1" size="12" onKeyUp='itogo()'></td><br>
Итого:
<input name="66" type="button" onClick="itogo()">
<input name="itogo" type="text" id="itogo" size="12" onKeyUp='itogo()'>
</body>
</html>
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
12.06.2013, 23:20
хорошее слово придумали - "слаживаться"

функция, имхо, вам нужна вообще одна, под названием, например, mySum ()
и "навешивать" её надо по событию onkeyup только на четыре текстовых инпута - на var_1, var_2, piece1, price1

а три прочих инпута (sum, sum1 и itogo) надо сделать недоступными для изменения юзером,
вот так: <input name="sum" type="text" id="sum" size="12" readonly>

тогда функция будет следующей:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function mySum ()
{
var ids = ['var_1', 'var_2', 'piece1', 'price1'];
with (document) 
   {
   for (var k = j = 0 , J = ids.length; j < J; j++)
      if (isNaN (parseFloat (getElementById  (ids [j]).value))) {k = 1; break}
   if (k)
      getElementById ('sum').value = 
      getElementById ('sum1').value = 
      getElementById ('itogo').value = '';
   else
      var a = getElementById ('sum').value = getElementById (ids [0]).value * getElementById (ids [1]).value,
          b = getElementById ('sum1').value = getElementById (ids [2]).value * getElementById (ids [3]).value,
          c = getElementById ('itogo').value = a + b;
   }
}
ну а вообще код ваш явно "ключница делала" - такой бардак у вас со значениями id и name, что аж страшно становится
1
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 21
16.06.2013, 10:36  [ТС]
kalabuni, Спасибо за помощь, а эта "ключница" по ходу я. Я бы с радостью писал код без ошибок, но просмотренных видео уроков явно для этого недостаточно Вот и приходится изворачиваться.
Возникла еще одна проблема.

Ячейка itogo заполняется только после того как заполнены все ячейки. Но на самом деле у меня их значительно больше чем я выложил на форуме. Можно как то сделать что бы ячейки sum, sum1 изначально принимали значение 0 и итоговая ячейка считалась сразу. А то я не вижу результата пока не ввиду 55 ячеек.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
16.06.2013, 11:54
можно, конечно
только надо порядок навести с наименованиями ячеек

например, первая тройка инпутов имеет id == a0, b0, c0
вторая тройка - a1, b1, c1
последняя 55-я - a54, b54, c54

ну а итоговая пусть так и останется itogo

тогда можно сделать, что при изменении двух a и b с одним номером в c с тем же номером сразу попадает их произведение, а в itogo - сумма всех уже заполненных к тому времени пар

сможете переидентифицировать инпуты?
тогда дам скриптик
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 21
16.06.2013, 12:28  [ТС]
смогу
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
16.06.2013, 14:08
тогда на каждый инпут с a и b вешайте onkeyup="mySum ()",
а все с с и itogo делайте readonly

и функция тогда будет такой:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function mySum ()
{
var S = 55; // количество троек инпутов
with (document) 
   {
   for (var R = j = 0; j < S; j++)
      {
      var A = parseFloat (getElementById ('a' + j).value),
          B = parseFloat (getElementById ('b' + j).value);
      if (!isNaN (A) || !isNaN (B)) getElementById ('c' + j)).value = 0;
      if (!isNaN (A) && !isNaN (B)) getElementById ('c' + j)).value = A * B, R += A * B;
      }
   getElementById ('itogo').value = R;
   }
}
1
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 21
16.06.2013, 20:19  [ТС]
Спасибо...и тогда еще одно уточнение, если можно. Все эти 55 значений плюсуются. Но надо сделать что б от суммы 55 ячеек отнималось одна ячейка (56) и результат шел в итоговый инпут

Добавлено через 5 минут
в 10 строчке показывает синтаксическую ошибку
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
16.06.2013, 21:12
лишняя скобка затесалась, вот здесь getElementById ('c' + j)).value выделил красным
уберите её в строчках #10 и #11
------

а вы в 56 пару тоже значения вводите, или они там изначально прописаны и не меняются?
0
0 / 0 / 0
Регистрация: 02.06.2013
Сообщений: 21
16.06.2013, 21:15  [ТС]
там не пара а просто одна ячейка, которую надо отнять от итоговой ячейки, она вводится вручную
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
17.06.2013, 14:53
назначьте этому инпуту id="minus" и в функцию перед строчкой #13 добавьте
JavaScript
1
if (!isNaN (getElementById ('minus').value)) R -= getElementById ('minus').value;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.06.2013, 14:53
Помогаю со студенческими работами здесь

Как реализовать введение формулы в ячейку через макрос без знака доллара
Добрый день! Есть такая проблема... где-то нашел как можно вводить формулы, вот пример: Worksheets(&quot;list&quot;).Cells(Z,...

Как сосчитать итого по колонке?
Здравствуйте! Помогите пожалуйста , начинаю вникать в 1С, сейчас необходимо сделать так чтобы при печати формы по столбцу необходимо строку...

как сделать итого в кассе
есть таблица с полями дата поступления/сумма/коммисия/примечание/итого на форме я уже умею делать такое как сумма+коммисия=итого... ...

Как получить итого через запроса
Привет форумчане! У меня такая проблема, в access есть таблица который видно на рисунке(таблица 1) я хочу получит итого отображённые...

Как подсчитать в отчете итого часов?
Подскажите пожалуйста! Есть простой отчет с полями Дата, Ф_И_О, время_начала_работы, время_окончания_работы. Нужно подсчитать количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru