0

在 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 中使用它?

4

1 回答 1

0

使用以 selector 开头的属性

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

这将针对 ID 以 myTable 开头的所有元素,例如myTable1,myTable2myTableStackOverflowChineseOldMan

使用 PHP 插入元素并不能真正使它们动态化,因此不需要委托事件处理程序。

于 2013-09-20T16:36:22.147 回答