单击图像时从动态表中删除行

时间:2013-09-04 19:25:59

标签: php jquery mysql

我正在开发一个PHP / MySQL网格,列出两个小图标,一个应该删除实际的寄存器并删除该行,另一个应该将用户重定向到打开所选寄存器详细信息的另一个页面。 这就是我的代码的样子:

PHP:

$output .='<tr id="'.$id.'">';
$output .='<td align="center">'.$expiration_date.'</td>';
$output .='<td>'.$title.'</td>';
$output .='<td>'.$title_pt.'</td>';
$output .='<td align="center">'.$last_update.'</td>';
$output .='<td align="center">'.$active_pack.'</td>';
$output .='<td align="center" class="icon_grid"><a id="edit" title="Open the register." href="special_pack_open.php?id='.$id.'"><img src="images/Write2.gif" width="16" height="16" /></a></td>';
$output .='<td align="center" class="icon_grid"><a id="delete" title="Delete the register." href="#"><img src="images/Trash.gif" width="16" height="16" /></a></td>';
$output .='</tr>';

JQuery的:

<script type="text/javascript">
$(document).ready(function() {
    $('table tr[id]').click(function(){
        $(this).closest("tr").remove();
        var obj = $(this);
         $.ajax({
           type: "POST",
           url: 'delete_package.php',
           data: { pk_id: obj.attr("id")},
           dataType: "json",
           success: function(data, evt) {
           if (data.success == "true") {
               alert('The record has been deleted successfuly!');
           } else {
               alert('error');
           }
           }
        })
    })
})
</script>

一切都很好。当我单击Trash.gif时,它会删除寄存器并删除该行。事情就是当我点击它应该转到下一页的Write2.Gif(第二个链接)时,它执行与删除相同的操作! 如何更改我的JQuery代码以使其理解只有一个链接专用于删除寄存器?

谢谢。

3 个答案:

答案 0 :(得分:0)

$("table tr[id]")是任何tr的选择器,它是table的后代,具有任何id属性。您需要一个更具体的选择器。

由于您将有很多行,您可能应该使用而不是 id 进行编辑/删除。

$(".delete").on("click", function () { /* your code */

您可能还需要委派活动

$("#id-of-table").on("click", ".delete"

答案 1 :(得分:0)

我对jQuery没有经验,但看起来您的选择器导致删除功能与tr的click事件相关联。尝试使用$('#delete')。点击而不是$('table tr [id]')。点击。

答案 2 :(得分:0)

<script type="text/javascript">
$(document).ready(function() {
    $('table tr[id]').click(function(){
        $(this).closest("tr").remove();
        var obj = $(this);
         $.ajax({
           type: "POST",
           url: 'delete_package.php',
           data: { pk_id: obj.attr("id")},
           dataType: "json",
           success: function(data, evt) {
           if (data.success == "true") {
               alert('The record has been deleted successfuly!');
           } else {
               alert('error');
           }
           }
        })
    })
})
</script>

用这个$('a#delete')

替换这个$('table tr [id]')