Moin,
ich habe eine Tabelle und habe für die das DataTable Plugin genutzt. Funktioniert auch soweit ganz gut.
Um diese Tabelle herum habe ich einen <div> erstellt, dieser heißt "refreshData".
Innerhalb dieser Tabelle habe ich einen Löschen Button. Sobald ich den Löschen Button drücke, für eine Datei, wird die Datei zwar gelöscht und die Tabelle wird indirekt neu geladen. Es verschwindet zwar die Datei aber der Counter (Wie viele Dateien vorhanden sind) wird noch so angezeigt, als wenn die Datei noch da ist.
Z.B haben wir 3 Dateien, die in der Tabelle angezeigt werden
Der Counter sagt dann auch "3 von 3 Dateien"
Lösche ich nun eine Datei zeigt die Tabelle nur noch 2 Dateien an, aber der Counter zeigt weiterhin "3 von 3 Dateien". Erst nach einem richtigen Aktualisieren ändert sich dies.
Mein zweiter Fehler:
Ich durchsuche ja ein Verzeichnis und gebe den Inhalt aus. Wenn nichts in dem Verzeichnis ist, gebe ich die Meldung aus "Es ist nichts vorhanden".
Wenn ich jetzt zum Beispiel nur noch eine Datei habe und diese Lösche, wird diese Meldung nicht mehr ausgegeben.
Hier einmal die Tabelle:
<div id="refreshData">
<div class="card-body table-full-width table-responsive" style="width: 100%;">
<table id="verzeichnis" class="table table-striped">
<?php if(count(scandir('../../../media/AzubiFiles/' . htmlspecialchars(ucfirst($userData["verzeichnis"])) . '/')) > 2) { ?>
<thead>
<th>Postion</th>
<th>Dateiname</th>
<th>Dateiformat</th>
<th>Dateitype</th>
<th>Dateigröße</th>
<th>Verwaltung</th>
</thead>
<?php } else { ?>
<div class="alert alert-danger alert-with-icon" data-notify="container">
<button type="button" aria-hidden="true" class="close" data-dismiss="alert">
<i class="nc-icon nc-simple-remove"></i>
</button>
<span data-notify="message" style="margin-left: 2%">Aktuell sind keine Dateien vorhanden!</span>
</div>
<?php } ?>
<tbody>
<?php
foreach(scandir($verzeichnis) as $ausgabeDatei) {
if(is_dir($verzeichnis . $ausgabeDatei)) {
$dateiSize = ceil(filesize($verzeichnis .$ausgabeDatei)/1024);
dateiEndung = pathinfo($ausgabeDatei, PATHINFO_EXTENSION);
$dateiNameCut = substr($ausgabeDatei, 0, 30);
$dateiNameCutType = explode(".", $dateiNameCut);
if($ausgabeDatei != "." and $ausgabeDatei != "..") {
?>
<tr>
<td><?php echo $position++; ?></td>
<td><?php echo $ausgabeDatei ?></td>
<td>Ordner</td>
<td><img src="assets/img/folder.png" height="28" width="25" title=".<?php echo $dateiEndung ?> - Datei"></td>
<td><?php echo $dateiSize ?> KB</td>
<td>
<a href="verzeichnis.php?folder=<?php echo $datei ?>/<?php echo $ausgabeDatei ?>" type="submit" class="btn btn-info btn-fill pull-right btn-sm">Öffnen</a>
<button type="submit" class="deleteFolder btn btn-info btn-fill pull-right btn-sm" id="<?php echo $datei ?>/" name="<?php echo $ausgabeDatei ?>">Löschen</button>
</td>
</tr>
<?php
}
} else {
?>
<tr>
<td><?php echo $position++; ?></td>
<td><?php echo $dateiNameCutType[0] ?></td>
<td>.<?php echo $dateiEndung ?></td>
<td><img src="assets/img/text_file.png" height="28" width="25" title=".<?php echo $dateiEndung ?> - Datei"></td>
<td><?php echo $dateiSize ?> KB</td>
<td>
<a href="includes/downloadFile.php?file=<?php echo $datei ?>/<?php echo $ausgabeDatei ?>" type="submit" class="btn btn-info btn-fill pull-right btn-sm">Download</a>
<button type="submit" class="deleteFile btn btn-info btn-fill pull-right btn-sm" id="<?php echo $verzeichnis . $ausgabeDatei ?>" name="<?php echo $ausgabeDatei ?>">Löschen</button>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
Alles anzeigen
Hier einmal das Lösch Script:
<script>
$(document).ready(function() {
$("#refreshData").on("click", ".deleteFile", function() {
var hh = document.createElement("div");
var fileName = $(this).attr("name");
var folder = <?php echo json_encode($datei) ?>;
var folder2 = folder.replace(/\s+/g, "%20");
hh.innerHTML = "Wollen Sie die folgende Datei wirklich löschen?<br><br><b>Dateiname:</b> " + fileName;
swal({
title: "Datei löschen",
content: hh,
icon: "warning",
closeOnClickOutside: false,
buttons: {
del: "Löschen",
cancel: "Abbrechen"
}
}).then((willDelete) => {
if (willDelete) {
var del_id = $(this).attr("id");
$.ajax({
type: "POST",
url: "includes/deleteFile.php",
data: {del_id:del_id},
success: function(data) {
if(data) {
$("#refreshData").load("verzeichnis.php?folder=" + folder2 + " #verzeichnis");
}
}
});
swal("Gelöscht", "Die Datei wurde vom Server gelöscht!", "success");
}
})
});
});
</script>
Alles anzeigen
Und einmal die DataTable:
<script>
$(document).ready(function() {
$('#verzeichnis').DataTable( {
"ordering": false,
"language": {
"url": "includes/German.json"
}
} );
});
</script>
Hat jemand eventuell eine Idee woran das liegen kann?
LG