ユーザーが「削除」ボタンをクリックすると、ファイルが削除されたことを示すメッセージが表示される機能内に削除機能があります。これを行うコードは次のとおりです。
$("#imagemsg").html(data);
しかし、問題は、4 つのテーブル行があり、3 行目のファイルを削除すると、メッセージは 3 行目にのみ表示されるはずですが、代わりに最初の行に表示されることです。別の例として、8 つのテーブル行があり、6 行目のファイルを削除すると、メッセージは 6 行目にのみ表示されるはずですが、代わりに最初の行に表示されます。
ファイルが削除された後に表示されるはずのメッセージが、ファイルが削除された行ではなく常に最初の行に表示されるのはなぜですか?
以下は完全なコードです。
var counter = 0;
counter++;
function stopImageUpload(success, imagefilename){
var result = '';
if (success == 1){
result = '<span id="imagemsg'+counter+'">The file was uploaded successfully!</span><br/><br/>';
$('.listImage').eq(window.lastUploadImageIndex).append('<div>' + htmlEncode(imagefilename) + '<button type="button" class="deletefileimage" image_file_name="' + imagefilename + '">Remove</button><br/><hr/></div>');
}
else {
result = '<span id="imageemsg">There was an error during file upload!</span><br/><br/>';
}
$(".deletefileimage").on("click", function(event) {
var image_file_name = $(this).attr('image_file_name');
jQuery.ajax("deleteimage.php?imagefilename=" + image_file_name)
.done(function(data) {
$("#imagemsg" + counter).html(data);
});
$(this).parent().remove();
});
return true;
}
以下は、削除メッセージが取得される deleteimage.php スクリプトです。
<?php
$image_file_name = $_GET["imagefilename"];
echo "$image_file_name was Deleted";
unlink("ImagesFilesFolder/$image_file_name");
?>