Ich versuche, den ID-Wert des letzten Bildes angezeigt wird, die den Wert in einem Kontrollkästchen ist. Der ID-Wert sieht folgendermaßen aus: "image_1, image_2 usw.
Ich brauche nur die tatsächliche Nummer, also habe ich die Slice-Funktion dazu verwendet. Wenn ich zum Beispiel 3 Bilder hochlade, muss ich dann die letzte ID bekommen und Wenn das letzte Bild image_5 ist und ich 3 neue Bilder hochlade, sollten die neuen Bilder image_6, image_7 und image_8 sein, aber das Problem, das ich habe, ist, dass alle 3 Bilder image_6 sind .
Originalcode:
//get the id value i.e.: image_1
$.each(data.result.files, function (index, file) {
var lastBox = $('input[name="pics[]"]').last().data("id");
// remove the image_ prefix to get the actual number value
var lastId = parseInt(lastBox.slice(6));
// increment each id by 1 in the $.each() loop
var total = lastId++;
console.log(total);
EDIT: Voll Code mit Antwort aufgenommen:
$('#fileupload').fileupload({
url: url,
dataType: 'json',
done: function (e, data) {
var lastBox = $('input[name="pics[]"]').last().data("id");
var lastId = parseInt(lastBox.slice(6));
var total = lastId;
$.each(data.result.files, function (index, file) {
total++;
console.log(total);
$("#gallery-body").prepend(`
<div class="col-md-3 img-box">
<input type="checkbox" id="image_${total}" name="pics[]" value="${file.name}" data-id="image_${total}" />
<label for="image_${total}" style="background-image: url(uploads/${file.name})">
<i class="glyphicon glyphicon-ok"></i>
</label>
</div>
`);
HTML-Ausgabe:
<div class="col-md-3 img-box">
<input type="checkbox" id="image_17" name="pics[]" value="IMG_5271.jpg" data-id="image_17">
<label for="image_17" style="background-image: url(uploads/IMG_5271.jpg)">
<i class="glyphicon glyphicon-ok"></i>
</label>
</div>
<div class="col-md-3 img-box">
<input type="checkbox" id="image_17" name="pics[]" value="dzone.jpg" data-id="image_17">
<label for="image_17" style="background-image: url(uploads/dzone.jpg)">
<i class="glyphicon glyphicon-ok"></i>
</label>
</div>
Sind Sie in jeder Iteration der Schleife neue Eingänge anhängt? Wenn nicht, ist "lastBox" in jeder Iteration 5 und "total" ist 6. –
Ich stelle neue Bilder vor, deren IDs auf dem letzten Bild folgen sollten, bevor neue Bilder hochgeladen wurden. – user8463989