//我正在使用我在Stack上找到的下面代码,它运行良好,但无论我选择哪一个,都只删除文件夹中的最新图像文件。我试图弄清楚如何删除所选的图像文件。这有解决方案吗?
<?php
$images = glob($dirname."*.jpg");
echo "<table width='100%'><tr>";
foreach($images as $image) {
$imagedisplay = $dirnameforimage.basename($image);
echo '<td><img src="'.$imagedisplay.'" style="max-height:75px; max-width:150px">';
echo '<input type="hidden" value="'.$image.'" id="delete_file" />';
echo '<input type="button" value="Delete image" onclick="delete_image()"/></td>';
} ?>
<script type = 'text/javascript'>
function delete_image()
{
var status = confirm("Are you sure you want to delete ?");
if(status==true)
{
var file = $("#delete_file").val();
$.ajax({
type:"POST",
url:"multimage/ImageLap.php",
data: {file:file},
success(html){alert('Deleted');},
</script>
答案 0 :(得分:0)
您目前正在HTML中重复使用id
值,这是无效的。所以当你这样做时:
$("#delete_file").val()
系统无法知道您正在寻找的那些元素中的哪一个
。不要将值放在隐藏元素中然后查找它,只需将值直接传递给函数即可。像这样:
foreach($images as $image) {
$imagedisplay = $dirnameforimage.basename($image);
echo '<td><img src="'.$imagedisplay.'" style="max-height:75px; max-width:150px">';
echo '<input type="button" value="Delete image" onclick="delete_image(\''.$image.'\')"/></td>';
}
然后在您的delete_image()
函数中,您已经将您需要的值作为函数参数传递,并且不需要找到它:
function delete_image(file) {
// just remove the "var file = ..." line, everything else stays the same
}