0

PHP では、動的な数のテーブルがあり、各テーブルには動的な数の行があります。テーブルの最後の列 ($reasonstr) はドロップダウン リストです。そのドロップダウンの変更をキャプチャしたい。私がこれを行う場合:

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

必要なものをキャプチャできます。ただし、ページ上のテーブルと行の数に基づいて、これを動的にしたいと考えています。

次のようにテーブルと行を識別しました。

$id は、ページのテーブルごとに増加します。

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

したがって、ページに 2 つのテーブルがある場合、それらは #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 で始まるすべての要素 (たとえばmyTable1myTable2myTableStackOverflowChineseOldManなど) がターゲットになります。

PHP で要素を挿入しても実際には動的にはならないため、委任されたイベント ハンドラーは必要ありません。

于 2013-09-20T16:36:22.147 に答える