我有一系列HTML链接,它们都具有相同的类但具有唯一的ID - ID包含数据库ID。
单击按钮时(通过单击该类的按钮检测到) - 它会调用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 :(得分:2)
试试这个:
$(".boatpic_delete").click(function(){
而不是第一行。
<强> Check JSFiddle Demo 强>
此外,您可以使用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>
使用id
获取.data
:
var id = $(this).data("id");
<强> Check JSFiddle Demo 强>
答案 1 :(得分:0)
我想知道jQuery是否生成了删除按钮和单击功能(即$(".boatpic_delete").click(function(){}
)。如果是这样,并且您要多次生成它们,则这些按钮将多次触发点击功能。
例如,您生成3个按钮和3个单击功能,最后生成的按钮将仅具有一个对应的单击功能,第二个将具有两个,第一个将具有3。
在这种情况下,您应该避免多次生成相同的单击函数,或者使用按钮ID而不是类。