アップデート:
これが私が解決策に望んでいることです。ユーザーが [キャンセル] ボタンをクリックすると、キャンセルされるファイルのファイル名を探し、そのファイル名を含むデータベース行を削除しようとします。
問題は、それが述べているようにファイル名を認識していないことですimagecancelname=undefined
. これは定義されていないため、ファイル名を認識しないため、ファイル名を含むデータベース行を削除できません。
問題は、imagecancelname
キャンセルされるファイルの名前を認識して、ファイル名を含むデータベース行を削除できるようにするにはどうすればよいかということです。
以下は、現在のフォーム コードです。
var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='return startImageUpload(this);' class='imageuploadform' >" +
"Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><br/><label class='imagelbl'>" +
"<input type='submit' name='submitImageBtn' class='sbtnimage' value='Upload' /></label>" +
"</p><p class='imagef1_cancel' align='center'></p>" +
"<iframe class='upload_target' name='upload_target' src='#' style='width:0;height:0;border:0px;solid;#fff;'></iframe></form>");
以下は、ファイルのアップロード時にキャンセル ボタンを表示する startImageUpload 関数と、ユーザーが [キャンセル] ボタンをクリックした場合のキャンセル ボタン関数を含む関数です。
function startImageUpload(imagecancelname){
$('.imagef1_cancel').eq(window.lastUploadImageIndex).html('<div><button type="button" class="imageCancel" image_cancel="' + imagecancelname + '">Cancel</button></div>');
$('.imagef1_cancel').eq(window.lastUploadImageIndex).find(".imageCancel").on("click", function(event) {
var image_cancel = $(this).attr('image_cancel');
var url = 'cancelimage.php';
window.location=url+"?imagecancelname=" + image_cancel;
});
return true;
}
最後に、ユーザーが [キャンセル] ボタンをクリックすると、このスクリプトに移動する cancelimage.php スクリプトを次に示します。このスクリプトは、$GET メソッドを使用してファイル名を見つけてデータベース行を削除するために使用されます。
<?php
... connected to DB
$image_cancel = $_GET["imagecancelname"];
$imagecancelsql = "DELETE FROM Image
WHERE ImageFile = 'ImageFiles/". mysql_real_escape_string($image_cancel)."'";
mysql_query($imagecancelsql);
mysql_close();
?>