仅在提交表单后删除图像

时间:2014-02-19 22:42:08

标签: php jquery

上传图片后,我想通过点击图片上的“x”让用户可以选择删除图片。我尝试了一些我在网上搜索的jquery代码,但没有任何结果我想要的。有没有办法只在单击提交按钮而不是重定向到删除页面然后必须返回删除其他图像时才从数据库中删除图像?

if($res18 && mysql_num_rows($res18) > 0){
    while($row18 = mysql_fetch_assoc($res18)){

        if (file_exists($row18['images']) === true){    ?>
            <a href="javascript:return(0);" class="addition_images_close" onclick="delete('<?php echo $row18['id']; ?>')""></a>
            <?php                                   
            //mysql_query("DELETE FROM `images` WHERE `images`='".$row18['images']."' AND `ad_id` = '".$id."'");            
            echo '<img src="'.$row18['id'].'" class="pictures">';       
        }
    }
} 

插入问题:

mysql_query("INSERT INTO `images` ($fields) VALUES ($data)");

我假设逻辑有点像这样:点击'x'链接后,运行一个运行删除查询的函数。

感谢任何帮助!

更新

$res18 = mysql_query("SELECT * FROM `images` WHERE `ad_id` = '" . $id . "'");
    if($res18 && mysql_num_rows($res18) > 0){
        while($row18 = mysql_fetch_assoc($res18)){
            $picture = $row18['images'];
            $pic_id = $row18['id'];

            if (file_exists($picture) === true){ ?>
                <a href="javascript:return(0);" class="addition_images_close" data-id=<?php echo $pic_id ?> id="a-<?php echo $pic_id ?>"></a>                                       
                 <img src="<?php echo $picture ?>"  id="img-<?php echo $picture ?>" class="pictures">
            <?php                   
            }
        }
    } 

<script type="text/javascript">
    $(document).ready(function(){
        // set onclick for all 'a' elements having the 'addition_image_close' class
        $('a.addition_images_close').click(function() {
            var $pic_id = $(this).prop('data-id');
            var $picture = $(this).prop('data-id');
            // post to delete.php, sending id=$picture as data and setting success handler
            $.post('delete.php', {id: $picture}, function() {
                // remove elements from page
                $('#img-' + $picture).remove();
                $('#a-' + $pic_id).remove();
            });
        });
    });
</script>

并且delete.php具有以下内容:

$id = $_GET['id'];
mysql_query("DELETE FROM `images` WHERE `ad_id` = '".$id."'");

1 个答案:

答案 0 :(得分:0)

list.php可能是这样的:

<?php

// ...

// render list
if($res18 && mysql_num_rows($res18) > 0) {
    while($row18 = mysql_fetch_assoc($res18)) {
        if (file_exists($row18['images']) === true){    ?>
            <a href="javascript:return(0);"
                class="addition_images_close"
                data-id=<?php echo $row18['id'] ?>
                id="a-<?php echo $row18['id'] ?>"
            >X</a>
            <img src="<?php echo $row18['id'] ?>"
                id="img-<?php echo $row18['id'] ?>"
                class="pictures">
        }
    }
}
?>
<!-- add actions on the links rendered above -->
<script type="text/javascript">
    // do this when page is loaded
    $(document).ready(function(){
        // set onclick for all 'a' elements ahving the 'addition_image_close' class
        $('a.addition_image_close').click(function() {
            var $id = $(this).prop('data-id');
            // post to delete.php, sending id=$id as data and setting success handler
            $.post('delete.php', {id: $id}, function() {
                // remove elements from page
                $('#img-' + $id).remove();
                $('#a-' + $id).remove();
            });
        });
    });

delete.php接收id参数并执行删除查询