Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Подсчет суммы (https://javascript.ru/forum/css-html/47115-podschet-summy.html)

ewfes 09.05.2014 10:39

Подсчет суммы
 
Здравствуйте!

Нужна Ваша помощь, пытаюсь создать подсчет суммы на js

Есть такое

<!DOCTYPE html>
<html>
<head>
<meta charset="cp1251">
<title>n</title>

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js"></script>


<script>

var sum = document.getElementById('summa');
var sum = document.getElementById('summa1');
var total = document.getElementById('itogo');

totalInt = parseInt(total.innerHTML.innerHTML);

sum.onchange = function() {
total.innerHTML = parseInt(summa1.value) + parseInt(summa.value);
}

</script>
</head>
<body>

<select id="summa">
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
<select id="summa1">
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>

<br>Сумма<div id="itogo"></div>

</body>
</html>

Но почему-то сумму не считает(

хотя тут http://jsfiddle.net/ewfes/6zEL9/

все правильно работает.

Помогите разобраться в чем моя ошибка

SeaGull 09.05.2014 11:07

В script'е Вы уже в процессе загрузки страницы обращаетесь к элементам, о которых система еще не знает, поскольку они находятся в коде ниже.

Перенесите блок script в конец примера. А лучше используйте обработку события .onload.

ewfes 09.05.2014 13:15

Спасибо, работает.
Теперь такая ситуация, есть пхп формы
<?php
$sql = "SELECT * FROM b2";
$result_select = mysql_query($sql);
echo "<select name = 'selector5'>";
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->p_b2' > $object->p_b2 </option>";
}
echo "</select>";

?>

<?php
$sql = "SELECT * FROM b3";
$result_select = mysql_query($sql);
echo "<select name = 'selector7'>";
while($object = mysql_fetch_object($result_select)){
echo "<option value = '$object->p_b3' > $object->p_b3 </option>";
}
echo "</select>";
?>

в которые потягиваются числовые значения из БД, тперь необходимо чтобы данный скрипт считал сумму выбранных из селектов значений.
Подскажите, пожалуйста, как это правильно реализовать, пробую так:

<script>

var sum = document.getElementById('$object->p_b2');
var sum = document.getElementById('$object->p_b3');
var total = document.getElementById('itogo');

totalInt = parseInt(total.innerPHP.innerPHP);

sum.onchange = function() {
total.innerHTML = parseInt($object->p_b3.value) + parseInt($object->p_b2.value);
}
</script>

Но не считает сумму, что делаю не так?

jsnb 09.05.2014 13:57

Приведите сгенерированный HTML и JS, а то в этой PHP солянке не понятно что там у вас получается в итоге.

SeaGull 09.05.2014 16:20

Цитата:

Сообщение от ewfes (Сообщение 311051)
var sum = document.getElementById('$object->p_b2');
var sum = document.getElementById('$object->p_b3');


Не вдаваясь в задачу:
я думал что в первом примере просто опечатка, но Вы, похоже, настаиваете на этом странном использовании переменной...

krasovsky 12.05.2014 08:40

var sum = document.getElementById('$object->p_b2');//это что за хрень??ясное дело что не считает, Js интерпретатор кровавыми слезами плачет пытаясь получить этот  id 
var sum = document.getElementById('$object->p_b3');//вторая переменная с именем sum???
var total = document.getElementById('itogo');

totalInt = parseInt(total.innerPHP.innerPHP);// первый раз вижу свойство innerPHP, которое к тому же имеет свойство innerPHP

sum.onchange = function() {
total.innerHTML = parseInt($object->p_b3.value) + parseInt($object->p_b2.value);//если уж выводить из пхп переменную, то может хоть пхп тег проставить надо а? 
}
/***** ******/
var sum = document.getElementById(' <?php echo $object->p_b2 ?> ');// я, к счастью, в пхп не силен, но сдается мне это делается как то так

Aetae 12.05.2014 09:44

.innerPHP - это божественно.


Часовой пояс GMT +3, время: 13:20.