[英]MySQL not deleting a row on Ajax call
我的删除按钮:
$('#taglist li #delete').bind('click', function(){
pic_id = $(this).parent().attr("rel");
$.post('savetag.php', {"type":"remove", pic_id:pic_id}, function(data){
viewtag();
});
});
savetag.php
if ($_POST['type'] == "remove")
{
$pic_id = $_POST['pic_id'];
$sql = "DELETE FROM image_tag WHERE `pic_id` = $pic_id";
mysql_query($sql);
}
这是查看标签viewtag.php的脚本:
$sql = "SELECT * FROM image_tag ORDER BY `pic_id`";
$qry = mysql_query($sql);
$rs = mysql_fetch_array($qry);
if ($rs){
do{
echo '<li rel="'.$rs['pic_id'].'"><a>'.$rs['name'].'</a> <a class = "delete">Delete</a></li>';
}while($rs = mysql_fetch_array($qry));
}
这是允许viewtag.php进入我的index.php的函数:
viewtag();
function viewtag()
{
$.post('viewtag.php', function(data){
$('#taglist ol').html(data);
});
}
那么问题是什么,为什么不删除表呢? 另外,anchor标签不起作用(从viewtag.php回显的anchor标签)。 问题是什么? 谢谢。
我能看到的是..您的<a>
标记不起作用,因为该标记是动态添加的,因此您需要on
委托事件上使用..并注意您的<a>
具有一个类,但您的选择器是id .. use .delete
作为选择器
$('#taglist').on('click','a.delete', function(){ //u can use #taglist li a.delete too
pic_id = $(this).parent().attr("rel");
$.post('savetag.php', {"type":"remove", pic_id:pic_id}, function(data){
viewtag();
});
});
如果您想了解有关事件的更多信息,可以通过链接
首先,您要选择ID,但有一个类:
$('#taglist li #delete')。
应该:
$('.delete').bind('click', function(e){
pic_id = $(this).parent('li').attr("rel");
$.post('savetag.php', {"type":"remove", pic_id:pic_id}, function(data){
viewtag();
});
e.preventDefault();
});
您的链接由于没有href标签而无法使用,那么浏览器如何知道正确的锚点?
<?php while($rs = mysql_fetch_array($qry)): ?>
<li rel="<?php echo $rs['pic_id'];?>"><a href="#<?php echo $rs['name'];?>"><?php echo $rs['name'];?></a> <a class="delete" href="#">Delete</a></li>
<?php endwhile;?>
另外,我怀疑他的viewtag()函数也存在问题,但是您没有发布相关的html,因此我对此无济于事
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.