Работа с "динамической" формой.
Добрый день, незнаю, насколько правильно обозвал в сабже проблему, суть в следущем:
Есть форма, куда подгружаются данные из бд. Фишка в том, что эти данные каждый раз разные, соответственно имена и id input'ов тоже каждый раз разные. Что бы было понятно: <?php $queryonerazd = mysql_query("SELECT `id`,`podrazdel`,`devnamesm`,`defkol`,`stoim` FROM `smdevice` WHERE `razdel` = '1' AND `notuse` = '0' AND `smuse` = '1' ORDER BY `podrazdel` ASC") or die(mysql_error()); if (mysql_num_rows($queryonerazd) > 0) { while ($arronerazd = mysql_fetch_assoc($queryonerazd)) { ?> <tr> <td> 1.<?php echo $arronerazd['podrazdel']; ?><input type='text' name='<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['id']; ?>' style='display:none' /></td> <td> <?php echo $arronerazd['devnamesm']; ?></td> <td><input type='text' name='defcol<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['defkol']; ?>' /></td> <td><input type='text' name='cena<?php echo $arronerazd['id']; ?>' value='<?php echo $arronerazd['stoim']; ?>' /></td> <td><input type='text' name='summye<?php echo $arronerazd['id']; ?>' value='' /></td> <td><input type='text' name='summrur<?php echo $arronerazd['id']; ?>' value='' /></td> <td><input type='checkbox' name='arn<?php echo $arronerazd['id']; ?>' value='1' /></td> </tr> <?php } } mysql_free_result($queryonerazd); ?> В результате получается чтото типа этого: <tr> <td> 1.1<input type='text' name='3' value='3' style='display:none' /></td> <td> Блок РЕКС 2В</td> <td><input type='text' name='defcol3' value='' /></td> <td><input type='text' name='cena3' value='300.00' /></td> <td><input type='text' name='summye3' value='' /></td> <td><input type='text' name='summrur3' value='' /></td> <td><input type='checkbox' name='arn3' value='1' /></td> </tr> Т.е. проще говоря, к каждому имени поля добавляется уникальный ID записи в БД, разделов <tr></tr> может быть сколько угодно много или мало, не суть, суть в том, что каждый раз их разное кол-во. Нужно следущее: у нас есть колонка с ценой и колонка с кол-вом (cena и defcol соотвтественно). В колонке кол-ва пишем число, которое умножается на цену и в колонках summye и summrur выводятся произведения кол-ва на сумму. Вроде все просто, если б имена были постоянными, выдернуть значение поля по id никаких проблем не составляет, а как быть в этом случае ? Единственная мысль, которая летает в голове, это выдернуть число (id) из 1го скрытого поля <input type='text' name='3' value='3' style='display:none' /> и далее уже с ним работать, но как это сделать ? Посоветуйте алгоритм, пожалуйста. |
Коль скоро цена и количество находятся в одной строке, Вы можете, отталкиваясь от инпута, найти tr-родитель, а в tr найти инпут с нужным именем.
|
Цитата:
|
Цитата:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script> function Calc(Obj) { var o=Obj.parentElement o=o.parentElement var o1=o.cells[0] var o2=o.cells[1] var o3=o.cells[2] o1=o1.getElementsByTagName('input')[0] o2=o2.getElementsByTagName('input')[0] o3=o3.getElementsByTagName('input')[0] o3.value=o1.value*o2.value } </script> </head> <body> <table> <tr> <td> <input type='text' onchange='Calc(this)' /> </td> <td> <input type='text' onchange='Calc(this)' /> </td> <td> <input type='text' /> </td> </tr> </table> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 17:04. |