Удалить изображение, которое показывают с glob() с помощью ajax

Как я могу дать конкретный идентификатор приращения для div.pix-box как pix-1, pix-2,..., чтобы удалить их с помощью AJAX?

$images = glob("user/$username/"."*.{jpg,jpeg,gif,png}",GLOB_BRACE);
    foreach($images as $image) {
        echo '<div class="pix-box"><img src="'.$image.'" />'.'<br>';
        echo '<form class="remover" action="admin-delete.php" method="post">';
        echo '<input type="hidden" value="'.$image.'" name="delete_file" />';
        echo '<input type="submit" name="submit" value="Delete image" />';
        echo '</form>';
        echo '</div>';
    }

и это мой сценарий ajax:

$(".remover").on('submit',(function(d) {
    d.preventDefault();
    $.ajax({
      url: "admin-delete.php",
      type: "POST",
      data:  new FormData(this),
      contentType: false,
          cache: false,
      processData:false,
      success: function(data)
        {
                $('#pix-....').remove();

        },
        error: function() 
        {
        }           
     });

и admin-delete.php:

<?php
if (array_key_exists('delete_file', $_POST)) {
  $filename = $_POST['delete_file'];
  if (file_exists($filename)) {
    unlink($filename);
    echo 'File '.$filename.' has been deleted';
  } else {
    echo 'Could not delete '.$filename.', file does not exist';
  }
}
?>

1 ответ

Решение

Добавьте инкрементную переменную:

$i = 1;

foreach($images as $image) {
    ...
    $i++;
}

Теперь вы можете использовать $i добавить уникальный суффикс к любому идентификатору, который вы хотите.

Другие вопросы по тегам