2014-09-01 21 views
1

我有一系列HTML链接,都具有相同的类但具有唯一的ID - 该ID包含数据库ID。JQuery单击似乎在同一类的所有按钮上触发

当单击按钮时(通过单击该类的按钮检测到) - 它会调用ajax脚本以使用链接上传递的ID从数据库中删除。

我无法复制它,但我得到的所有项目被删除的无数报告 - 就像有人点击了页面上的每个链接(但没有保证)。我可以从备份中看到数据曾经存在,系统中没有其他代码从该表中删除。

验证PHP脚本以确保用户只能删除自己的项目。

有没有人有任何想法可能会导致此?

感谢

例子:

HTML:

<a class="boatpic_delete" id="boatpicdelete_btn_1">Delete</a> 
<a class="boatpic_delete" id="boatpicdelete_btn_2">Delete</a> 
<a class="boatpic_delete" id="boatpicdelete_btn_3">Delete</a> 

的Jquery:

$(".boatpic_delete").live("click",function(){ 
     var id = $(this).attr("id"); 
     id = id.replace("boatpicdelete_btn_", ""); 
     var tile = $("#boatpic_tile_"+id); 

     data = "action=picdelete&id="+id; 
     $.ajax({ 
      type: "GET", 
      url: pathToDashboard + "/editboat/ajax_boatpics.php", 
      data : data, 
      dataType: "json", 
      success: function(response) 
      { 
       if(response && response.success == true) 
       {      
        tile.remove(); 
       } 
       else 
       { 
        alert("Error, unable to delete");    
       } 
      }, 
      error: function(res){ 
       alert("Error, unable to delete"); 
      } 
     }); 
    }); 
+0

关键问题是用你的代码替换id。 – 2014-09-01 10:18:21

回答

2

试试这个:

$(".boatpic_delete").click(function(){ 

而不是第一行。

Check JSFiddle Demo

而且不是这种怪异的解决方案来获得ID,您可以使用data属性是这样的:

<a class="boatpic_delete" id="boatpicdelete_btn_1" data-id="1">Delete</a> 
<a class="boatpic_delete" id="boatpicdelete_btn_2" data-id="2">Delete</a> 
<a class="boatpic_delete" id="boatpicdelete_btn_3" data-id="3">Delete</a> 

而且使用.data得到id

var id = $(this).data("id"); 

Check JSFiddle Demo

+0

非常棒,谢谢你,我会做出这些改变,看看我们在接下来的几天会有更多这样的事情发生。 – 2014-09-01 11:23:56

+0

你好,会做,但我会先给它几天,看看我们是否有更多的事情发生。我无法复制错误,所以无法确定。 – 2014-09-01 12:02:22

相关问题