Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2013, 20:22
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

Общий подсчёт из нескольких полей
Здравствуйте . Есть 4 таблицы.
В каждой по нескольку десятков вычисляемых input-полей для ввода.
В каждой таблице все поля суммируются и результат выводится в <span></span>.
Таблицы никак не связаны между собой. В общем хочу сделать так, чтобы был ещё один <span></span>, в который суммируются все 4 <span>'а соответствующих четырёх таблиц. Сам никак не дотумкаю. Спасибо заранее.


HTML-КОД:

Код:
<div id="calculate">

 <form method="post">
	<table id="tableSelect" class="zebratable" width="100%" cellpadding="0" cellspacing="0">
    	<tr>
            <th>Наименование работ</th>
            <th>Ед.изм.</th>
            <th>Колличество</th>
            <th>Цена за единицу</th>
            <th>Сумма</th>
        </tr>
        
        <tr>
        	<td>Пробивка штробы по кирпичу</td>
            <td class="vertical">м</td>
            <td>
            	<input id="pos_1" type="text" name="people" value="0">
            </td>
            <td class="vertical" id="pos_1_price">100</td>
            <td id="pos_1_count">0</td>
        </tr>
        
        <tr>
        	<td>Пробивка штробы по бетону</td>
            <td class="vertical">м</td>
            <td>
            	<input id="pos_2" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos_2_price">150</td>
            <td id="pos_2_count">0</td>
        </tr>
        
        <tr>
        	<td>Прокладка провода</td>
            <td class="vertical">м</td>
            <td>
            	<input id="pos_3" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos_3_price">35</td>
            <td id="pos_3_count">0</td>
        </tr>       
		
    </table>
<div id="count_price"><p>Итого: <span></span></p></div>

</form>
</div>


<div id="calculate2">

 <form method="post">
	<table id="tableSelect2" class="zebratable" width="100%" cellpadding="0" cellspacing="0">
    	<tr>
            <th>Наименование работ</th>
            <th>Ед.изм.</th>
            <th>Колличество</th>
            <th>Цена за единицу</th>
            <th>Сумма</th>
        </tr>
        
        <tr>
        	<td>Демонтаж радиаторов отопления</td>
            <td class="vertical">шт</td>
            <td>
            	<input id="pos2_1" type="text" name="people" value="0">
            </td>
            <td class="vertical" id="pos2_1_price">150</td>
            <td id="pos2_1_count">0</td>
        </tr>
        
        <tr>
        	<td>Демонтаж труб отопления,водопровода,канализации</td>
            <td class="vertical">мп</td>
            <td>
            	<input id="pos2_2" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos2_2_price">60</td>
            <td id="pos2_2_count">0</td>
        </tr>
        
        <tr>
        	<td>Демонтаж сантехнических приборов</td>
            <td class="vertical">шт</td>
            <td>
            	<input id="pos2_3" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos2_3_price">250</td>
            <td id="pos2_3_count">0</td>
        </tr>       
		
    </table>
 <div id="count_price2"><p>Итого: <span></span></p></div>
</form>

</div>


<div id="calculate3">

 <form method="post">
	<table id="tableSelect3" class="zebratable" width="100%" cellpadding="0" cellspacing="0">
    	<tr>
            <th>Наименование работ</th>
            <th>Ед.изм.</th>
            <th>Колличество</th>
            <th>Цена за единицу</th>
            <th>Сумма</th>
        </tr>
        
        <tr>
        	<td>Удаление старых обоев</td>
            <td class="vertical">м<sup>2</sup></td>
            <td>
            	<input id="pos3_1" type="text" name="people" value="0">
            </td>
            <td class="vertical" id="pos3_1_price">50</td>
            <td id="pos3_1_count">0</td>
        </tr>
        
        <tr>
        	<td>Очистка потолка от шпатлевки или краски</td>
            <td class="vertical">м<sup>2</sup></td>
            <td>
            	<input id="pos3_2" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos3_2_price">100</td>
            <td id="pos3_2_count">0</td>
        </tr>
        
        <tr>
        	<td>Грунтование потолка</td>
            <td class="vertical">м<sup>2</sup></td>
            <td>
            	<input id="pos3_3" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos3_3_price">20</td>
            <td id="pos3_3_count">0</td>
        </tr>       
		
    </table>
 <div id="count_price3"><p>Итого: <span></span></p></div>
</form>

</div>


<div id="calculate4">

 <form method="post">
	<table id="tableSelect4" class="zebratable" width="100%" cellpadding="0" cellspacing="0">
    	<tr>
            <th>Наименование работ</th>
            <th>Ед.изм.</th>
            <th>Колличество</th>
            <th>Цена за единицу</th>
            <th>Сумма</th>
        </tr>
        
        <tr>
        	<td>Монтаж радиатора</td>
            <td class="vertical">шт</td>
            <td>
            	<input id="pos4_1" type="text" name="people" value="0">
            </td>
            <td class="vertical" id="pos4_1_price">2000</td>
            <td id="pos4_1_count">0</td>
        </tr>
        
        <tr>
        	<td>Монтаж коллекторного шкафа</td>
            <td class="vertical">шт</td>
            <td>
            	<input id="pos4_2" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos4_2_price">1500</td>
            <td id="pos4_2_count">0</td>
        </tr>
        
        <tr>
        	<td>Монтаж межэтажных стояков</td>
            <td class="vertical">мп</td>
            <td>
            	<input id="pos4_3" type="text" name="people_t" value="0">
            </td>
            <td class="vertical" id="pos4_3_price">200</td>
            <td id="pos4_3_count">0</td>
        </tr>       
		
    </table>
 <div id="count_price4"><p>Итого: <span></span></p></div>
</form>

</div>

JAVASCRIPT-КОД:

Код:
$(document).ready(function() {
	
	//Таблица1
	$("#tableSelect").change(function() {
		var totalSum = 0;
		
		$("input[id^='pos'], select[id^='pos']").each(function() {
			var idElement = "#"+$(this).attr("id"), //Получаем id элемента
				priceField = parseInt($(idElement+"_price").text()), //Стоимость позиции
				countField = parseInt($(this).val()); //значение элемента
			
			$(idElement+"_count").text(priceField * countField); //Выводим сумму по позиции
			totalSum += priceField * countField;
		});
		$("#count_price span").text(totalSum);
	});
	
	
	//Таблица2
	$("#tableSelect2").change(function() {
		var totalSum = 0;
		
		$("input[id^='pos2'], select[id^='pos2']").each(function() {
			var idElement = "#"+$(this).attr("id"),
				priceField = parseInt($(idElement+"_price").text()),
				countField = parseInt($(this).val());
			
			$(idElement+"_count").text(priceField * countField);
			totalSum += priceField * countField;
		});
		$("#count_price2 span").text(totalSum);
	});

		
	//Таблица3
	$("#tableSelect3").change(function() {
		var totalSum = 0;
		
		$("input[id^='pos3'], select[id^='pos3']").each(function() {
			var idElement = "#"+$(this).attr("id"),
				priceField = parseInt($(idElement+"_price").text()),
				countField = parseInt($(this).val()); 
			
			$(idElement+"_count").text(priceField * countField); 
			totalSum += priceField * countField;
		});
		$("#count_price3 span").text(totalSum);
	});
	
	
	//Таблица4
	$("#tableSelect4").change(function() {
		var totalSum = 0;
		
		$("input[id^='pos4'], select[id^='pos4']").each(function() {
			var idElement = "#"+$(this).attr("id"),
				priceField = parseInt($(idElement+"_price").text()),
				countField = parseInt($(this).val());
			
			$(idElement+"_count").text(priceField * countField);
			totalSum += priceField * countField;
		});
		$("#count_price4 span").text(totalSum);
	});
	

});
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2013, 20:33
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Вы можете записать значение в span, значит можете и получить его оттуда. Остается только просуммировать полученное
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2013, 20:35
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

SkyLight,
Если бы я знал как это сделать, то не задавал бы вопрос на форуме. Спасибо)
Ответить с цитированием
  #4 (permalink)  
Старый 13.04.2013, 20:47
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Вы не знаете, как получить содержимое тега? Вы же это уже сделали. И уже записали результат одной операции в спан. Теперь вам нужно сделать по сути то же самое, что есть сейчас, просто с другими блоками.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #5 (permalink)  
Старый 13.04.2013, 20:53
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

SkyLight,
Здесь ни всё я делал сам. В JS я начинающий, так что прошу помощи.
Ответить с цитированием
  #6 (permalink)  
Старый 13.04.2013, 21:48
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

Пользуясь вашим кодом:
var переменная = parseInt($(селектор).text())

Так вы берете значение из элемента, попутно приводя его к числу.

$(селектор).text(переменная);

Так вы записываете значение в элемент.

Работу с арифметикой не расписываю.

Итого: у вас есть все необходимое уже тут для решения задачи.
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #7 (permalink)  
Старый 13.04.2013, 21:51
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

SkyLight,
Спасибо за разъяснение, буду пробовать.
Ответить с цитированием
  #8 (permalink)  
Старый 13.04.2013, 22:19
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

В общем не разобрался. Так и не понял как правильно записать. Ничего не получилось. Спасибо.
Ответить с цитированием
  #9 (permalink)  
Старый 13.04.2013, 23:09
Аватар для SkyLight
Злюка-бобер
Отправить личное сообщение для SkyLight Посмотреть профиль Найти все сообщения от SkyLight
 
Регистрация: 21.03.2010
Сообщений: 438

А что хоть пробовали-то? Вы покажите
__________________
In WEB We Trust
У всех есть своя темная сторона...
Ответить с цитированием
  #10 (permalink)  
Старый 13.04.2013, 23:26
Интересующийся
Отправить личное сообщение для alshinkareff Посмотреть профиль Найти все сообщения от alshinkareff
 
Регистрация: 28.02.2013
Сообщений: 17

SkyLight,
Боюсь, это слишком глупо, чтобы показывать)

var sum = 0;
var totalSum1 = parseInt($(#"count_price span").text(totalSum);
var totalSum2 = parseInt($(#"count_price2 span").text(totalSum);
var totalSum3 = parseInt($(#"count_price3 span").text(totalSum);
var totalSum4 = parseInt($(#"count_price4 span").text(totalSum);

sum += totalSum1 + totalSum2 + totalSum3 + totalSum4;
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление из нескольких полей в одно bohdantheone Общие вопросы Javascript 12 08.10.2013 13:32
Получение данных из нескольких полей в одно gJam Events/DOM/Window 3 09.06.2012 13:13
Проблема с проверкой полей в форме Eth Общие вопросы Javascript 7 19.08.2010 17:41
Добавление и удаление полей в форму anoth3r Events/DOM/Window 1 11.09.2009 15:10
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14