обновление данных "на лету" при вводе
Есть форма, в ней есть три поля:
<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, можете пример дать пожалуйста?
|
piraids,
добавь обработчики onchange в верхние два поля. |
Яростный Меч, а как насчет 3его поля?)
|
Цитата:
|
BETEPAH,
это кусок php кода - показан для того чтобы понять что я хочу, скрипта там нет, прошу пример как написать скрипт вдобавок к этому коду, чтобы данные обновлялись до того как нажмешь кнопку "сохранить/отправить" в форме |
Цитата:
|
<!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>
|
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, время: 10:31. |