Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обновление данных "на лету" при вводе (https://javascript.ru/forum/misc/41211-obnovlenie-dannykh-na-letu-pri-vvode.html)

piraids 04.09.2013 13:33

обновление данных "на лету" при вводе
 
Есть форма, в ней есть три поля:
<input name='price' value="<?php echo($this->was_price); ?>">
<input name='markup' value="<?php echo($this->markup); ?>">
<select>
<option value="0" <?php if ($this->price_percent == 0) echo('selected="selected"'); ?>>0%</option>...</select>

Есть переменная которая выводит итог из всего этого:
$calculate_totals = $this->was_price + (($this->was_price * $this->markup)/100) - (($this->was_price * $this->price_percent)/100);

Нажимаешь отправить - данные отправляются - все выводит, все показывает, все считает.

Как сделать еще чтобы при вводе данных в верхние поля сразу же выводилось значение в $calculate_totals - то есть поменял например цену - оно сразу же пересчитало и вывело, не нажимая на кнопку "отправить/сохранить"?

tsigel 04.09.2013 16:08

Ванести рассчет в скрипт.

piraids 05.09.2013 14:06

tsigel, можете пример дать пожалуйста?

Яростный Меч 05.09.2013 15:40

piraids,

добавь обработчики onchange в верхние два поля.

piraids 05.09.2013 17:09

Яростный Меч, а как насчет 3его поля?)

BETEPAH 05.09.2013 17:33

Цитата:

Сообщение от piraids (Сообщение 270789)
Есть форма, в ней есть три поля:
<input name='price' value="<?php echo($this->was_price); ?>">
<input name='markup' value="<?php echo($this->markup); ?>">
<select>
<option value="0" <?php if ($this->price_percent == 0) echo('selected="selected"'); ?>>0%</option>...</select>

Есть переменная которая выводит итог из всего этого:
$calculate_totals = $this->was_price + (($this->was_price * $this->markup)/100) - (($this->was_price * $this->price_percent)/100);

Вы уверены, что это Javascript?

piraids 05.09.2013 17:37

BETEPAH,
это кусок php кода - показан для того чтобы понять что я хочу, скрипта там нет, прошу пример как написать скрипт вдобавок к этому коду, чтобы данные обновлялись до того как нажмешь кнопку "сохранить/отправить" в форме

Яростный Меч 05.09.2013 17:38

Цитата:

Сообщение от piraids
а как насчет 3его поля?)

тоже.

BETEPAH 05.09.2013 18:13

<!DOCTYPE html>
<html>
<head></head>
<body>
<form id="form">
    <input id="price" type="text" value="1" />
    <input id="markup" type="text" value="2" />
    <input id="out" type="text" />
</form>
<script>
var f = document.getElementById('form');
f.onchange = f.onkeyup = function() {
    var first = +document.getElementById('price').value; 
    var second = +document.getElementById('markup').value; 
    document.getElementById('out').value = first + second || 'нужны числа';
}
</script>
</body>
</html>

piraids 06.09.2013 09:44

BETEPAH, спасибо!!!

Получился такой скрипт
<script>
	var sum = document.getElementById('summ');
		sum.onchange = sum.onkeyup = function() {
		    var first = +document.getElementById('price').value;
		    var second = +document.getElementById('markup').value;
		    var third = +document.getElementById('price_percent').value;
		    document.getElementById('summ_itog').value = (first + ((second * first)/100)) - (third * first)/100 || 'Введите цену';
		}
	</script>


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