1

次のようにデータを表示する Web ページがあります。

| id | name   | delete |
|  1 | orange | delete |
|  2 | apple  | delete | etc...

削除 (ボタン) を押すと、jquery ダイアログに再び 2 つのボタンが表示されます。一度に複数のアイテムを削除したり、選択したアイテムのみを削除したりできます。

-------------------------------
|dialog                       |
-------------------------------
|delete this row              |
|delete entire series         |
-------------------------------

私の質問は次のとおりです:たとえば、ダイアログボックスで「この行を削除」が選択されている場合、jqueryで選択された行のIDを取得するにはどうすればよいですか? データベース内の行を削除する php ページにリダイレクトしてから、現在更新されているページ (行が削除された状態) にリダイレクトするにはどうすればよいですか?

私はjqueryに非常に慣れていませんが、これは私がこれまでに得たものです:

JQuery

<script>
$(function() {
   $( ".dialog" ).dialog({ autoOpen: false });
});
$(function() {
  $(".showDialog").click( function()
       {
         $( ".dialog" ).dialog( "open");
       });   
 });
 $(function() {
  $( ".deleteEvent" ).click( function()
    { 

        $( ".dialog" ).dialog( "close");
        $(this).closest("tr").remove(); // doesn't work
    });
 });
 </script>

ダイアログ

<div class="dialog" title="delete event dialog">
    <input class="deleteEvent" type='button' value='delete this row'/>
</div>

テーブル

foreach($table as $row)
{
    echo '<tr><td>'.$row['id'].'</td>',
    '<td>'.$row['name'].'</td>',
    '<td><div class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
    '</tr>';
}
4

1 に答える 1

0

削除入力ボタンを使用して html を出力するときは、id を値として渡す非表示の入力フィールドも追加します。

編集:

コードを読み間違えました。表示された行ごとに個別の入力ボタンがないようです。あなたの場合、div id値の一部として行を追加するか、divのカスタム属性として次のように追加することをお勧めします。

foreach($table as $row)
{
    echo '<tr><td>'.$row['id'].'</td>',
    '<td>'.$row['name'].'</td>',
    '<td><div id="row_'.$row['id'].'" class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
    '</tr>';
}

また

foreach($table as $row)
{
    echo '<tr><td>'.$row['id'].'</td>',
    '<td>'.$row['name'].'</td>',
    '<td><div row="'.$row['id'].'" class="showDialog" ><IMG style="margin-left:15px;" src="./public/pictures/trash.gif"></a></div></td>',
    '</tr>';
}

次に、クリックイベントで、$(this).attr('id').split('_')[1]または$(this).attr('row')それぞれ使用できます

于 2013-02-03T19:13:38.730 に答える