在PHP中,我有一个动态数量的表,每个表都有一个动态行数。表中的最后一列($ reasonstr)是一个下拉列表。我想捕捉下拉的变化。如果我这样做:
$('#reason2td3').change(
function(){
}
我能够捕捉到我需要的东西。但是,我希望这是动态的,基于页面上的表和行的数量。
我已经确定了表格和表格。行如下:
表,其中$ 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;
所以,表2中的第3行是#reason2td3。
如何从PHP捕获$ id和$ tdid并在JQuery中使用它?
答案 0 :(得分:0)
使用attribute starts with selector:
$('[id^="myTable"]').on('change', function(){
var $id = this.id;
// do stuff
});
这将定位ID为myTable的所有元素,例如myTable1
,myTable2
,myTableStackOverflowChineseOldMan
等。
使用PHP插入元素并不能使它们动态化,因此不需要委托事件处理程序。