我有一个html表,如果填充MysqL表的值.这条路:
function getCategories(){ $prod = new C_Product(); $cat= $prod->getCategorieenAsArray(); $tr = ""; foreach ($cat as $key => $value){ $tr.="<tr><td> </td><td>$value</td><td><img src=\"images/delete_button.gif\"></td></tr>\n"; } return $tr; }
现在我希望能够按下删除按钮从数据库中删除该行并刷新表,以便它实际上也从html页面上的表中删除.我想用于这个jQuery和Ajax.这对我来说应该不难.我的问题是如何选择要删除的行? jquery如何知道哪个img被按下了?
我应该在img / tr中添加一个带有值的类吗?如果我使用id,我将不得不为要添加的每一行重新定义我的jquery函数,因此似乎不是正确的解决方案.
那么有人可以帮助我吗?
谢谢
//编辑:
与此同时,我继续以自己的方式尝试数字输出,现在我已经使用正确的id完成了一个完整的ajax调用.
jQuery(document).ready(function(){ jQuery("img.deleterow").click(function(){ id = jQuery(this).parent().attr("id"); jQuery.ajax({ type: "POST",data: "id=" +id,url: "ajax_handler.PHP",success: function(msg){ jQuery(this).parent().remove(); } }); }); });
现在我唯一的问题是在数据库中删除id时从表中删除tr.
这就是我的tr的样子:
$tr.="<tr><td> </td><td>$value</td><td id=\"$key\"><img class=\"deleterow\" src=\"images/delete_button.gif\"></td></tr>\n";
解决方法
我会defintely向img或tr添加一个类,并且还会添加一个ID,该ID具有数据库中元素的ID
但如果你不这样做会有点像这样
$('img').click(function(){ var id = $(this ~ tr).attr("id"); $.ajax(type: "POST",url: "some.PHP",data: "id="+id,success: function(msg){ $(id).remove(); }); });
编辑你的编辑:
您是否尝试过$(“#id~tr”)选择器将其删除?例如$(#id~tr).remove();
如果你要添加ID,我也会把ID放在tr上,然后就是$(‘#id’).remove();摆脱tr