1

以下に示す、対処する必要があるWebプログラミングの質問があります。

「フォーム要素をstartImageUpload()関数に渡し、に追加する HTML に文字列として保存しようとしていますimagef1_cancel element。これは機能しません。各フォームに を指定しunique id、この文字列を使用して、必要なアップロードを識別します。キャンセルします。」

現時点では、キャンセル ボタンをクリックしたときに行から削除したいファイルを認識できません。以下は、var_dump($GET)print($imagecancelsql)が示しているものです。

注意: 未定義のインデックス: 22 行目の /xxx/Mobile_app/cancelimage.php の imagecancelname array(0) { } DELETE FROM Image WHERE ImageFile = 'ImageFiles/'

では、キャンセルする必要があるアップロードのファイル文字列を特定できるように、問題を解決するにはどうすればよいでしょうか?

以下は、これを解決しようとする私の現在の試みです。

 var sourceImageForm; 

         function startImageUpload(imageuploadform, imagecancelname){

  $(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
  $(imageuploadform).find('.imagef1_cancel').css('visibility','visible');
  $(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
  sourceImageForm = imageuploadform;

/*The above would show and hide elements within the form the file is being uploaded.
For example if I have three forms and the second form is uploading a file, then it
shows and hides the elements within the second form only */

        $(imageuploadform).find('.imagef1_cancel').html('<div><button type="button" class="imageCancel" id="image_cancel_' + imagecancelname + '">Cancel</button></div>').find(".imageCancel").on("click", function(event) {
        $.ajax("cancelimage.php?imagecancelname=" + $(this).attr('id').slice(13));

});       
      return true;
}

以下はフォームコードです。

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>");

最後に、ファイル名を含む db 行を削除すると想定される cancelimage.php を以下に示します。

   <?php

      // ... connected to DB

$image_cancel = '';
if (isset($_GET["imagecancelname"])) { $image_cancel = $_GET["imagecancelname"]; }

      $image_cancel = $_GET["imagecancelname"];
      $imagecancelsql = "
        DELETE FROM Image 
        WHERE ImageFile = 'ImageFiles/".mysql_real_escape_string($image_cancel)."'
      ";

      print $imagecancelsql;

      mysql_close();

    ?>
4

1 に答える 1

1
Notice: Undefined index: imagecancelname

このGETインデックスの存在を確認するときに、この通知を取り除くことができます。

$image_cancel = '';
if (isset($_GET["imagecancelname"])) { $image_cancel = $_GET["imagecancelname"]; }


// This line is only asking what that underscore is good for (typo?)
// $image_cancel_ = $_GET["imagecancelname"];
                ^
                |
              ? ? ?

後で、$ image_cancelが有用で(!)許可されている場合にのみ続行する必要があります(ユーザー入力を信頼せず、適切な検証を行ってください)。

于 2012-05-18T06:53:01.943 に答える