我有一个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";
我一定要在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 ~ tr).remove();
如果您要添加ID,我还将ID放在tr上,那么它将$('#id').remove();摆脱tr
$('#id').remove();