Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.01.2013, 04:43
Новичок на форуме
Отправить личное сообщение для Denya Посмотреть профиль Найти все сообщения от Denya
 
Регистрация: 24.01.2013
Сообщений: 4

Несколько сумм одновременно
Создан следующий список, который считает параметр: количество населения. Но необходимо одновременно считать еще и количество детей, домов и соцобъектов. Подскажите, возможно ли это? Сейчас страница выглядит следующим образом:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Список</title>
<script language="JavaScript" type="text/javascript">
function sum() 
{ 
k=0;
for(i=0;i<4;i++) 
{if(document.getElementById('people'+i).checked) k+=parseInt(document.getElementById('people'+i).value);}
document.form1.people.value=k;
alert(k);
}
</script>
</head>
<body>
  
Выберите населенные пункты<BR> 
<form name="form1"> 
<input type="checkbox" id="people0" value="380">Ивановск<BR> 
<input type="checkbox" id="people1" value="620">Горняк<BR> 
<input type="checkbox" id="people2" value="120">Дальний<BR> 
<input type="checkbox" id="people3" value="650">Северный<BR> 
<HR> 

<INPUT type="button" value=Посчитать onClick="sum()">
общее количество<HR>
<input type="text" name="people" size=2>
человек<HR>

<INPUT type="reset" value="Отменить"> 
</form>

</body>

Последний раз редактировалось Denya, 24.01.2013 в 04:51.
Ответить с цитированием
  #2 (permalink)  
Старый 24.01.2013, 05:43
Новичок на форуме
Отправить личное сообщение для Denya Посмотреть профиль Найти все сообщения от Denya
 
Регистрация: 24.01.2013
Сообщений: 4

Данные есть, внести их знаний не хватает.. Спасибо, попробую научиться в массив данные вносить
Ответить с цитированием
  #3 (permalink)  
Старый 24.01.2013, 09:54
Новичок на форуме
Отправить личное сообщение для Denya Посмотреть профиль Найти все сообщения от Denya
 
Регистрация: 24.01.2013
Сообщений: 4

Может у кого-нибудь есть шаблон исходного массива?
Ответить с цитированием
  #4 (permalink)  
Старый 24.01.2013, 13:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Denya
Данные есть
Покажи...

Сообщение от Denya
Может у кого-нибудь есть шаблон исходного массива?
Вернём шаблоном!
Ответить с цитированием
  #5 (permalink)  
Старый 24.01.2013, 14:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Дзен-трансгуманист
По сути, дополнительные данные даже не обязательно прописывать прямо в форму. Куда проще зарядить всё что нужно в некий исходный массив (или подгружать аяксом, если так удобнее), а форму заполнить динамически прямо из скрипта.
Что-то типа такого...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
label {
	display: block;
}
p {
	margin: 0;
}
</style>
<script type="text/javascript">
var data={
	'Пупкино': {
		'жители': 100,
		'дети': 20,
		'дома': 5,
		'соцобъекты': 1
	},
	'Светлово': {
		'жители': 200,
		'дети': 150,
		'дома': 10,
		'соцобъекты': 3
	}
};
function sum() {
	var o=document.getElementsByName('data');
	var i,cod,j,oc,op;
	var inf={};
	for (i=0; i<o.length; i++) {
		if (!o[i].checked) {
			continue;
		};
		cod=o[i].value
		for (j in data[cod]) {
			inf[j]=(inf[j]||0)+data[cod][j];
		};
	};
	var oc=document.getElementById('info');
	oc.innerHTML='';
	for (i in inf) {
		op=document.createElement('p');
		o=document.createTextNode(i+': '+inf[i]);
		op.appendChild(o);
		oc.appendChild(op);
	};
};
function init() {
	var oc=document.getElementById('data');
	var ol,o,cod;
	for (cod in data) {
		ol=document.createElement('label');
		o=document.createElement('input');
		o.type='checkbox';
		o.value=cod
		o.name='data'
		ol.appendChild(o);
		o=document.createTextNode(cod);
		ol.appendChild(o);
		oc.appendChild(ol);
	};
};
</script>
</head>
<body onload='init();'>
<form id='frm'>
	<div id='data'></div>
	<input type="button" value='Посчитать' onclick="sum()">
	<div id='info'></div>
</form>
</body>
</html>

Последний раз редактировалось ksa, 24.01.2013 в 15:39.
Ответить с цитированием
  #6 (permalink)  
Старый 30.01.2013, 17:04
Новичок на форуме
Отправить личное сообщение для Denya Посмотреть профиль Найти все сообщения от Denya
 
Регистрация: 24.01.2013
Сообщений: 4

Работает!! То что нужно! Благодарность огромная и уважуха!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX несколько элементов на странице... myocean jQuery 3 12.11.2012 00:00
Передвигать одновременно несколько элементов todd-barry jQuery 19 27.10.2012 22:40
Несколько ajax запросов одновременно pitbull0007 AJAX и COMET 3 16.10.2012 19:08
Зацепить одновременно несколько элементов. LRCenter Events/DOM/Window 4 14.03.2011 09:22
Несколько одинаковых таблиц. Обращение к отдельным элементам в них. zaytsewa Элементы интерфейса 7 11.11.2010 09:08