2012-05-04 2 views
0

以下は、削除メッセージ '$(".imagemsg" + counter).html(data);'を表示しているコードです。しかし、ファイルが2番目の行でのみ削除された後に削除メッセージを表示しています。これは間違っています。ファイルが削除された行にのみ表示する必要があります。2行目の削除メッセージのみを表示します

たとえば、ファイルが3行目から削除された場合は、3行目にメッセージが表示され、6行目からファイルが削除された場合は、6行目などに削除メッセージが表示されます。ファイルがどの行から削除されても、2行目だけが削除メッセージを表示します。

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; 
} 

結果変数はimageupload.phpにここに呼ばれている:

CALLBACK:

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

答えて

0

このアプローチは、全体的に理想的ではありません。より良いアプローチはおそらくそれらにすべて同じクラスを与え、適切な要素を見つけるためにparentfindchildrenなどのようなものを使用することでしょう。

しかし、大規模なコードをオーバーホールせずに、私は薄く、これはそれを修正する必要があります

var _counter = counter; 

$('.listImage').eq(window.lastUploadImageIndex).find(".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(); 
}); 

を基本的にクリックハンドラにのみ該当するボタンに添付され、適切なcounter値が使用されます。

+0

私はあなたの方法を試しましたが、それでも同じ問題が発生しています。ここには、アプリケーション[ここ](https://helios.hud.ac.uk/u0867587/Mobile_app/QandATable3.php)へのリンクがあります。アプリケーションを開くときに、「追加」ボタンを2回クリックし、最初の行のファイル入力にファイルをアップロードすると、ファイル名が最初の行の下に表示されます。次に、2行目のファイル入力で別のファイルをアップロードすると、そのファイルのファイル名が2行目の最後に表示されます。しかし、両方のファイルを削除すると、メッセージ(削除されたファイル)はまだ2行目にのみ表示されます。これが助けて欲しいと思っています:) – user1373827

+0

完全なコードを見たところで私の答えが更新されました。 –

+0

偉大な、これは完璧に動作します。ありがとう:) – user1373827

関連する問題