0

foreachのデータベースのデータをPHPで出力するがあります。これらのすべての行へのリンクを取得して、データベースから各データを削除できるようにしました。すぐ下foreachinput type="hidden"、データのIDを値として持つがあります。

<?php
    foreach($sql->query("SELECT * FROM table") AS $row) {
        <input type="hidden" value="'.(int)$row['id'].'">
        echo $row['name'].' (<a href="javascript:void(0)" id="delete-row">delete</a>)';
    }
?>

いくつかの激しいグーグル検索の後、私はこれを思いついた。しかし、「削除」リンクをクリックすると、ループ内のすべての行がこのコードで出力されます。

$(document).ready(function() {
    $('#delete-row').click(function() {
        var val = $('input[type="hidden"]').map(function() {
            return this.value;
        }).get();

        alert(val);
    });
});

これは間違っています!クリックしたリンクのIDを取得したい。ID 3のリンクをクリックすると、ID 3のアラートが表示されます。問題を解決する方法を知っていますか?

前もって感謝します。

4

1 に答える 1

4

私はこれに隠しフィールドを使用することさえしません。

<?php
    foreach($sql->query("SELECT * FROM table") AS $row) {
        echo $row['name'].' (<a href="javascript:void(0)" data=". (int)$row['id'] ." class="delete-row">delete</a>)';
    }
?>


$(document).ready(function() {
    $('.delete-row').click(function() {
        var val = $(this).attr('data');    
        alert(val);
    });
});
于 2012-10-17T20:54:29.467 に答える