|
Тема |
Re: Javascript:Пресмятане на стойности от клетки [re: Nebesen1] |
|
Автор |
dimodi (...) |
|
Публикувано | 19.01.07 22:09 |
|
|
Здрасти,
Тъй като PHP-то няма отношение към проблема ти, вместо него можеше да дадеш готов HTML, който хората да гледат/ползват.
Иначе ето един вариант от мен, ама имай предвид, че не работи под IE5, заради toFixed() метода. Ако го махнеш, ще работи, но няма да имаш винаги два знака след десетичната точка. Твоят вариант работеше само с цели числа, докато този може и с десетични дроби.
Една особеност е, че трябва предварително да имаш Javascript масив с ID-тата на input-ите. Този масив можеш да си го построиш с PHP, като имаш резултата от заявката към базата. Друг вариант е да си ги взимаш ID-тата с Javascript след като страницата се зареди, ама лично аз не знам как става точно.
И накрая, да знаеш, че id и name атрибутите не могат да започват с цифра, трябва с буква.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="bg" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta http-equiv="content-language" content="bg" />
<title>JS Calculate</title>
<script type="text/javascript">
// <![CDATA[
var productIds = new Array('p1', 'p2', 'p3');
var sum;
function calc()
{
sum = 0;
for (j = 0; j < productIds.length; j++)
{
if (parseInt(document.getElementById(productIds[j]).value) > 0)
{
sum += parseFloat(document.getElementById(productIds[j]).value);
}
}
document.getElementById('psum').innerHTML = sum.toFixed(2) + ' лв.';
}
// ]]>
</script>
</head>
<body>
<table summary="продукти и цени">
<caption>Продукти и цени</caption>
<thead><tr><th>Продукт</th><th>Цена без ДДС</th></tr></thead>
<tbody>
<tr><td>Чушки</td><td><input type="text" id="p1" name="p1" size="4" value="1.40" alt="Чушки"
onkeyup="javascript:calc();" /> лв.</td></tr>
<tr><td>Домати</td><td><input type="text" id="p2" name="p2" size="4" value="2.40" alt="Домати"
onkeyup="javascript:calc();" /> лв.</td></tr>
<tr><td>Сирене</td><td><input type="text" id="p3" name="p3" size="4" value="5.50" alt="Сирене"
onkeyup="javascript:calc();" /> лв.</td></tr>
</tbody>
<tfoot><tr><th>Общо</th><th id="psum">9.30 лв.</th></tr></tfoot>
</table>
</body>
</html>
Редактирано от dimodi на 19.01.07 22:12.
|
| |
|
|
|