[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вычисление суммы в js
l@pteff
всем привет, подскажите пожалуйста, как лучше сделать следующее: есть <span id="digit"> с числами, в другом <span id="total"> производится подсчёт суммы этих чисел
 
<span id="digit"> </span>
<span
id="total"> </span>
<input
type="submit" id="subm">


при добавлении в <span id="digit"> нового числа (это делается нажатием на submit) должно выводиться новое значение суммы.


$(function() {
$(':submit').click(function(e) {
e.preventDefault();
$('#digit').each(function() {
var znach=$(this);

});
});


как быть дальше не соображу... искал, но функций подсчёта суммы для js не нашёл. :(



Спустя 16 минут, 47 секунд (7.05.2011 - 13:03) Lenarfate написал(а):
http://wufoo.com/html5/elements/3-output.html

самый простой способ. поддерживается всеми браузерами)

Спустя 21 минута, 26 секунд (7.05.2011 - 13:25) Michael написал(а):
Цитата
есть <span id="digit"> с числами

где числа то?
Цитата

$('#digit').each(function() {

Так перебирают коллекцию, а у тебя это один элемент.

Спустя 20 минут, 38 секунд (7.05.2011 - 13:45) l@pteff написал(а):
Michael, числа там есть, они вставляются не напрямую

Спустя 4 минуты, 16 секунд (7.05.2011 - 13:50) Michael написал(а):
// получаешь строку чисел
var s = $('#digit').html();
var arr = s.split('разделитель чисел');
// и по циклу уже пробежись, суммируя


Спустя 16 минут, 19 секунд (7.05.2011 - 14:06) l@pteff написал(а):
Michael, изменил так:

var s = $('#digit').html();
var arr = s.split('<br>');

если не трудно, напиши пожал. какой будет цикл?

Спустя 6 минут, 36 секунд (7.05.2011 - 14:13) l@pteff написал(а):
Так не работает:

for (i=0, sum=0; i < this.length; sum += this[i++]) {
$('#total').html(sum);
}

Спустя 4 минуты, 26 секунд (7.05.2011 - 14:17) Michael написал(а):
ты наугад что ли пишешь? А то бессмыслица какая то.
var s = $('#digit').html();
alert(s);

и скажи, что выводит

Спустя 5 минут, 53 секунды (7.05.2011 - 14:23) l@pteff написал(а):
при первом нажатии на submit выводит null, а при последующих-первое число из "digit"

Спустя 5 минут, 22 секунды (7.05.2011 - 14:28) Michael написал(а):
Цитата (l@pteff @ 7.05.2011 - 13:23)
при первом нажатии на submit выводит null, а при последующих-первое число из "digit"

А что - там есть и другие? laugh.gif Не может быть. .html() выведет все содержимое у <span id="digit"> </span>. Ты просто что то совершенно не то делаешь и информации нам реальной не даешь. Помощь бессмысленна.

Спустя 2 минуты, 14 секунд (7.05.2011 - 14:30) sharki написал(а):
Michael
А ты не заметил что он хочет подсчитывать сумму чисел из SPAN? biggrin.gif обычно если нужен ввод чисел то должен быть инпут с полем текст, чтобы брать оттуда что либо, и уже складывать)

Какой то бред у парня...

Спустя 3 минуты, 18 секунд (7.05.2011 - 14:34) Michael написал(а):
Цитата (sharki @ 7.05.2011 - 13:30)
Michael
А ты не заметил что он хочет подсчитывать сумму чисел из SPAN? biggrin.gif обычно если нужен ввод чисел то должен быть  инпут с полем текст, чтобы брать оттуда что либо, и уже складывать)

Какой то бред у парня...

Та все я заметил. Я думал у него там что то типа: 7,8,99,44 и предлагал эту строку разбивать(split), но у него там что то иное ...

Спустя 9 минут, 7 секунд (7.05.2011 - 14:43) l@pteff написал(а):
Цитата

обычно если нужен ввод чисел то должен быть инпут

всё это есть, скоро выложу

Спустя 27 минут, 45 секунд (7.05.2011 - 15:11) Lenarfate написал(а):
l@pteff
я тебе уже отпостил выше. посмотри и не парься. очень простое решение

Спустя 38 минут, 56 секунд (7.05.2011 - 15:50) l@pteff написал(а):
во-первых спасибо всем кто отозвался.
Lenarfate, решение хорошее, но здесь задача чуть сложнее.
Michael
sharki
реальная картина такова: есть страница заказа товаров такого вида:

<form method="post" action="../php/script.php">
<a
href="#">Товар1</a><input id="good1" name="good1" type="hidden" value="Товар1"/>
<input
type="submit" id="subm1" class="basket" value="" title="Добавить в корзину"/><br>

<a
href="#">Товар2</a><input id="good2" name="good2" type="hidden" value="Товар2"/>
<input
type="submit" id="subm2" class="basket" value="" title="Добавить в корзину" /><br>

<a
href="#">Товар3</a><input id="good3" name="good3" type="hidden" value="Товар3"/>
<input
type="submit" id="subm3" class="basket" value="" title="Добавить в корзину" />

<span
id="sort"> </span>
<span
id="total"> </span>


при щелчке на соответвствующий submit в <span id="sort"> вставляется название товара и его цена

$(function() {
$('#sort').slideUp();
$('.basket').click(function(e) {
e.preventDefault();
var obj=$(this).prev().val();
$.post("../php/script.php", {good:obj}, function(data) {
$("#sort").append(data).show();
})

var s=$('#digit').html();
alert(s);

});
});



php-скрипт

$good1=addslashes($_POST['good1']);
$good2=addslashes($_POST['good2']);
$good3=addslashes($_POST['good3']);

foreach ($_POST as $key=>$val)
$query = mysql_query("select type_good, price_good from goods where type_good like '$val'");

if (mysql_num_rows($query)==0) {exit('Товара нет на складе');}

$row = mysql_fetch_assoc($query);

echo '<table><tr><td>'.$row['type_good'].'</td><td id="digit">'.$row['price_good'].'</td></t


В <td id="digit"> находятся значения цены.
Цитата

Цитата (l@pteff @ 7.05.2011 - 13:23)
при первом нажатии на submit выводит null, а при последующих-первое число из "digit"

А что - там есть и другие?

Если на каждый из сабмитов нажать по-очереди, в "digit" будет уже 3 значения.
А в <span id="total"> должна выводиться сумма заказа...

Спустя 16 минут, 22 секунды (7.05.2011 - 16:06) l@pteff написал(а):
может быть в таких случаях проще в бд высчитывать сумму заказа и тупо выводить в <span id="total">?

Спустя 2 минуты, 5 секунд (7.05.2011 - 16:08) Michael написал(а):
У тебя получается id-шки одинаковые будут. Лучше выводи классом.
<td class="digit">'.$row['price_good'].'</td>

А обновлять инфу надо после прихода ответа:
$.post("../php/script.php", {good:obj}, function(data) {
$("#sort").append(data).show();
var sum = 0;
$('.digit').each(function(){
sum += parseInt($(this).html());
});
$('#total').html(sum);
})

Спустя 9 минут, 56 секунд (7.05.2011 - 16:18) l@pteff написал(а):
Michael, огромное спасибо за помощь, теперь всё высчитывает верно!

Спустя 2 часа, 39 минут, 7 секунд (7.05.2011 - 18:57) CyberOrcX написал(а):
я к кэпу щас ))
он точно бы подсказал, что надо было делать в первую очередь =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.