Как связать событие изменения JQuery для динамических таблиц / строк?

0

В PHP у меня есть динамическое количество таблиц, и каждая таблица имеет динамическое количество строк. Последний столбец в таблице ($ reasonstr) является выпадающим списком. Я хочу зафиксировать изменение в этом падении. Если я это сделаю:

                    $('#reason2td3').change(
                     function(){
                        }

Я могу захватить то, что мне нужно. Однако я хочу, чтобы это было динамическим, исходя из количества таблиц и строк на странице.

Я определил таблицы и строки следующим образом:

table, где $ id увеличивается с каждой таблицей на странице:

echo sprintf('<table cellspacing="0" class="myTable" id="myTable%s">',$id);

поэтому, если на странице есть две таблицы, это # myTable1 и # myTable2.

строки, где $ tdid увеличивается с каждой строкой в таблице:

                     echo '<tbody>';
                   foreach ($record as $r) {
                        echo sprintf('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>$ %s</td><td>%s</td><td id="reason%std%s">%s</td></tr>',
                             $r['org_number'],
                             $r['dept_descr'],
                             $r['supplier_number'],
                             $r['supplier_name'],
                             $r['invoice_number'],
                             $r['receive_date'],
                             $r['final_qty'],
                             number_format($r['final_cost'],2),
                             $r['inv_status'],
                                $id,
                                $tdid,
                                $reasonstr);
                             $tdid++;
                   }
                  echo '</tbody></table>';
                  $tdid=0;

поэтому 3-я строка в таблице 2 - # reason2td3.

Как я могу записать $ id и $ tdid из PHP и использовать его в JQuery?

Теги:

1 ответ

0
Лучший ответ

Использование атрибута начинается с селектора:

$('[id^="myTable"]').on('change', function(){
   var $id   = this.id;
   // do stuff
});

Это будет нацелено на все элементы с идентификатором, начиная с myTable, например myTable1, myTable2, myTableStackOverflowChineseOldMan и т.д.

Вставка элементов с PHP не делает их динамическими, поэтому делегированные обработчики событий не нужны для этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню