Вычисление занчаений из динамически меняющейся формы

Yura

Новичок
Вычисление значений с помощью javascript из динамически меняющейся формы

На странице выводится таблица со списком выбранных пользователем товаров, формируемая с помощью РНР, данные берутся из MYSQL. В таблице столбцы: 1) наименование продукции, 2) поле для ввода веса товара, 3) стоимость. По умолчанию отображаются вес=1 тн. и стоимость за 1 тн. (из базы). После того как пользователь указал в нужной позиции требуемый ему вес, стоимость должна измениться автоматически как в соответствующей этому товару строке, так и общая стоимость всех выбранных позиций. Как правильно реализовать такую возможность с помощью javascript?
Некоторые строчки из "моего творчества":
<input type="text" size="4" name="chv[<?=$k?>]" onChange="get_price(f.chv[<?=$k?>].value, <?=$k?>)" value="">
<td id="price<?=$k?>" align="center"><?=$priceForUnit?></td>

Здесь $k - id товара из mysql

В функции get_price(ves, k) для пересчета стоимости товара пишу:
document.getElementById("price"+k).innerHTML=ves*priceForUnit;

После изменении значения веса ничего не происходит. В чем может быть ошибка?
 

dimagolov

Новичок
priceForUnit в JS откуда береться?

про "ничего не происходит" - поставь alert в обработчик события и поймешь когда он пускается.
 

Yura

Новичок
Автор оригинала: dimagolov
priceForUnit в JS откуда береться?
priceForUnit - значение из базы данных. Если пользователь меняет значение в форме, то должна изменяться и цена, а в форме с name="chv[<?=$k?>]" должно изменяться и значение value.

про "ничего не происходит" - поставь alert в обработчик события и поймешь когда он пускается.
Понял, что первый параметр не передается в функцию. Ошибка в самом вызове функции. К примеру, если k=6, а значение, 25, то вызфывется функция не с параметрами f.chv.6 и 6, а должно 25 и 6. Получается, что я не правильно указываю передаваемый параметр. Если так, то подскажите, как нужно передавать в моем случае.
 

dimagolov

Новичок
обращаться к элементам в JS надо не по name, а через getElementById, причем id должен быть уникальным и не содерджать к примеру [ и ]

но прикол в том, что в inline-обработчике события элемента this указывает на сам элемент, так что моно не передавать ничего параметром а смотреть на this.value оттуда же через this.id можно определять строку в таблице и формировать id других элементов в строке для обращения через getElementById

-~{}~ 28.04.08 09:43:

только нюанс. вешать обработчики надо бедет а JS примерно так:
PHP:
for (тут цикл по нужным элементам) {
...
elem.onchange= get_price;
}
иначе this будет на window указывать
 
Сверху