php - MySQL 不会在 Ajax 调用中删除行

标签 php mysql jquery

我的删除按钮:

$('#taglist li #delete').bind('click', function(){
        pic_id = $(this).parent().attr("rel");
        $.post('savetag.php', {"type":"remove", pic_id:pic_id}, function(data){
            viewtag();
          });
    });

保存标签.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委托(delegate)事件..并注意您的 <a>有一个类,但你的选择器是 id..使用 .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();
      });
});

您可以通过link如果您想了解有关事件的更多信息

关于php - MySQL 不会在 Ajax 调用中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14722817/

相关文章:

php - 仅在 Woocommerce 结帐页面中将文本附加到总价

php - 如何输出查询数据

php - 如何使用 PHP 同时从多个 Web 服务获取数据?

javascript - NodeJS 和 MySQL 中标记系统的 3 个表更新的最佳方法

javascript - 为什么 $ ('el' )[0].className 有效,但 $ ('el' ).className 无效?

javascript - 在文本区域中将文本数据作为 JSON 加载,并防止执行此操作(javascript)

php - 更改了 MySQL 的 root 密码,现在 zurmo 无法连接到数据库

mysql - 先放特定行,再按列排序

php - 如何检测 Android 应用程序的卸载并从服务器中删除相关用户的数据?

javascript - JQuery 通过部分标记名查找元素