使用ajax删除文件夹中的所选文件

时间:2017-08-10 13:48:57

标签: ajax

//我正在使用我在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>

1 个答案:

答案 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
}