0

我正在研究一个列出两个小图标的 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>';

查询:

<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 代码以使其了解只有一个链接专用于删除寄存器?

谢谢你。

4

3 回答 3

0

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

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

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

您可能还需要委托活动

$("#id-of-table").on("click", ".delete"
于 2013-09-04T19:32:58.757 回答
0

我对 jQuery 的经验并不多,但您的选择器似乎导致删除功能与 tr 的单击事件相关联。尝试使用 $('#delete').click 而不是 $('table tr[id]').click。

于 2013-09-04T19:34:05.073 回答
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]')

于 2013-09-04T19:43:59.587 回答