В 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?
Использование атрибута начинается с селектора:
$('[id^="myTable"]').on('change', function(){
var $id = this.id;
// do stuff
});
Это будет нацелено на все элементы с идентификатором, начиная с myTable, например myTable1
, myTable2
, myTableStackOverflowChineseOldMan
и т.д.
Вставка элементов с PHP не делает их динамическими, поэтому делегированные обработчики событий не нужны для этого.