Op een pagina in een admin panel heb ik de mogelijkheid om meerdere foto's in een keer te verwijderen met behulp van check boxen en AJAX POST

Dit is mijn AJAX call:

[code lang=js]
$("#delete-form").on("submit", function(e) {
e.preventDefault();
$.ajax({
url : "/admin/fotos/delete_fotos",
type: "post",
data: $(this).serialize(),
success: function(data){
window.alert("Foto's succesvol verwijderd");
}
});
});[/code]

De url /admin/fotos/delete_fotos verwijst naar de volgende method in mijn controller:

<?php

public function delete_fotosAction()
{
    $thumb_path = APP_PATH.'/../images/fotos/thumbnails/';
    $photo_path = APP_PATH.'/../images/fotos/fotos/';
		
    foreach($_POST['delete_id'] as $key => $value)
    {
        if(file_exists($thumb_path . $key))
	{
            unlink($thumb_path . $key);
        }
			
        if(file_exists($photo_path . $key))
        {
            unlink($photo_path . $key);				
	}
			
	$this->media->delete_fotos($_POST['delete_id']);
    }
}
?>


in mijn routes.php heb ik de volgende route gedeclareerd:

<?php
'/admin/fotos(/:action(/:id))' => [
    'controller' => 'Controller_Admin_Media',
    'action' => 'fotos',
],
?>


Zodra ik meerdere foto's selecteer en op de verwijder button click krijg ik inderdaad het bericht Foto's succesvol verwijderd maar als ik de pagina ververs is er niets gebeurd. Als ik de netwerk tab in dev tools open en ik herhaal de boven genoemde stappen staat de delete_fotos method er gewoon tussen met de juiste delete_id's. Maar zoals gezegd de foto's worden niet verwijderd. Zie ik misschien iets over het hoofd?

Iedere hulp zou meer dan welkom zijn, alvast bedankt

Hoe ziet $_POST['delete_id'] er uit?

Is dit zoiets:
<input type="checkbox" name="delete_id[12]" value="1" />
?

Kijk nu nog eens naar de bestanden die je verwijdert? Ik kan mij niet voorstellen dat een afbeelding "/images/fotos/fotos/12" heet...

Reageren