0

以下は、削除メッセージを表示しているコードですが、各行に表示されています。これは正しくありません。ファイルが削除された行に表示されるはずです。

   var counter = 0;

function stopImageUpload(success, imagefilename){

      var result = '';
      counter++;

      if (success == 1){
         result = '<span class="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 class="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;   
}

ここで、result 変数は imageupload.php で呼び出されます。

折り返し電話:

  <script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result ? 'true' : 'false'; ?>, '<?php echo $_FILES['fileImage']['name'] ?>');</script>

アプリケーションへのリンクはこちらです。

これを行って、[追加] ボタンを 2 回クリックし、両方の行でファイル入力を使用して画像をアップロードしてください。両方の行で、ファイルのアップロードが成功したことが示され、それぞれの行の下部に両方のファイルの名前が表示されます。削除ボタンをクリックしてファイルを削除すると、メッセージ (ファイルが削除されました) が両方の行に表示され、ファイルが削除された行にのみ表示されます。

4

1 に答える 1

2

関数内でカウンターを初期化しているため、ローカル変数になります。したがって、値は毎回ゼロになります。関数の外で初期化する必要があります。

于 2012-05-04T14:51:12.837 に答える