1

我有一个网页显示数据如下:

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

当您按下删除(它是一个按钮)时,您会得到一个 jquery 对话框,再次显示两个按钮。您可以一次删除多个项目或仅删除所选项目。

-------------------------------
|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 回答