我在表'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文件夹中删除了该图像文件。任何帮助都会很棒。
答案 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;
?>
希望这会有所帮助。