删除jquery .click上的特定SQL行。 (点击时,我试图从数据库中删除图像)

时间:2019-01-02 06:04:48

标签: php jquery mysql

我在表'files'中有一行,其中'id'是唯一的标识符列,等于$ imgId。 imgId = $ row ['id'];

<script type="text/javascript">
$( "#<?php echo $imgId ?>" ).click(function() {
  <?php
$sql = "DELETE FROM files WHERE id=$imgId";

if ($con->query($sql) === TRUE) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . $con->error;
}
$conn->close();
?>
});
</script>

我正在显示多个嵌入,其html ID等于该图像的唯一标识符sql列ID。

<embed id="<?php echo  $imgId; ?>"class="delete-row" src="<?php echo $filePath; ?>" type="<?php echo $fileMime; ?>"/>

我只想要它,所以当您单击一个特定的图像时,它会将其从数据库中删除,并从/ uploads文件夹中删除了该图像文件。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

建议不要执行此操作。您不能在jquery click函数中使用mysql pdo对象。我建议您使用以下方法。请注意,这只是一个基准。请随时根据您的要求更改代码。

在html文件中或使用脚本标记的位置,使用以下语法:

<script type="text/javascript">
    jQuery(".delete-row").click(function(){
        var imageId = jQuery(this).attr('id');
        var filePath = jQuery(this).attr('src');

        jQuery.ajax({
            type: "POST",
            url: "[DOMAIN]/deleteImage.php",
            data: {imageId: imageId, path: filePath},
            success: function(res) {
                if (res === "deleted") {
                    jQuery(this).remove();
                }
            }
        });
    });
</script>

在deleteImage.php文件中:

<?php
    require 'conn.php';

   if (!empty($_POST['imageId'])) {
       $sql = "DELETE FROM files WHERE id=$imgId";

       if ($con->query($sql) === TRUE && unlink($_POST['path'])) {
           return "deleted";
       } else {
           return false;
       }
   }

   $conn->close();

   return false;
?>

希望这会有所帮助。