Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   автоматический пересчёт суммы (https://javascript.ru/forum/dom-window/38546-avtomaticheskijj-pereschjot-summy.html)

сергей2 05.06.2013 23:45

автоматический пересчёт суммы
 
привет! подскажите кто знает как реализовать следующую штуку:
1) есть два поля input type=text в каждом из них целое число
2) есть форма form id=myForm в котором те поля находятся
3) есть третье поле, в котором отображается произведение первых двух
как сделать так,чтобы меняя цифру в одном из первых двух полей. произведение в третьем автоматически обновлялось без перезагрузки страницы,нажимании на какие-либо кнопки и пр? подобные скрипты есть в инет-магазинах, где меняешь кол-во и это поле умножается на цену и получается общее сумма, но тут надо чтобы изменения могли происходить в обоих полях

vadim5june 05.06.2013 23:56

<input id=i1 value=30 onchange=f()><input id=i2 value=3 onchange=f()><input id=i3 value=90 ><br>
<script>
function f(){
var n1=document.getElementById('i1').value;
var n2=document.getElementById('i2').value;
document.getElementById('i3').value=Number(n1)*Number(n2);
}
</script>

сергей2 06.06.2013 00:07

vadim5june во, да, оно самое. Только вот оно срабатывает когда новое число ввел и убрал мышку из поля, а как бы чтобы сразу? то есть курсор ещё в поле а сумма сменилась?
и ещё забыл совсем! - сумму через запрос mysql_query() надо в бд передать. это AJAx уже я так пониммаю?

сергей2 06.06.2013 00:11

onkeyup вроде бы помог! всё правильно сделал?
<input id="i1" value=30 onkeyup="f()"><input id="i2" value=3 onkeyup="f()"><input id="i3" value=90 ><br>
<script>
function f(){
var n1=document.getElementById('i1').value;
var n2=document.getElementById('i2').value;
document.getElementById('i3').value=Number(n1)*Num ber(n2);
}
</script>

vadim5june 06.06.2013 00:18

Цитата:

Сообщение от сергей2
всё правильно сделал?

onchange лучше -а так мельтешить будет и если ввести число допустим с помощью мышки(вставить) то не отобразится
а так правильно сделали
можно и ajax ом передать-тогда тем более нужно change оставить-а то на одно исправление несколько запросов уйдет

сергей2 06.06.2013 00:29

просто данные в эти поля выводятся из базы данных
по сути надо чтобы каждый раз когда изменяется цифра в поле чтобы шёл запрос в бд UPDATE `MyTable`SET `vir1` = 'число' и тут же снова выгружалось в форму. это сложно будет?

vadim5june 06.06.2013 00:42

На стороне клиента несложно-а серверные языки я не знаю
типичный аякс запрос на jquery
$.ajax({
   url: "page.php",
   data: data,
   success: handleResponse
 });

в data передаете содержимое 3-го инпута
а в функции sucess и пишите куда вставлять полученные данные


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