从db中删除行并使用jquery进行查看

时间:2013-02-03 19:11:26

标签: php jquery ajax

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

| 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>';
}

1 个答案:

答案 0 :(得分:0)

当您使用删除输入按钮输出html时,还要添加一个隐藏的输入字段,将id作为值传递

编辑:

我误读了你的代码,看起来你没有为每个显示的行提供单独的输入按钮。对于您的情况,我建议将行添加为div id值的一部分,或者在div中添加自定义attrib,如下所示:

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')