2012-08-04 2 views
1

jQuery를 사용하여 선택한 표 행을 삭제하는 데 도움이 필요합니다. 나는 다음과 같은 파일이 아약스를 통해 DB에서 삭제하는 DELETE 링크를 클릭하면<tr> 내부의 링크에서 표 행 삭제

<tr data-file='+file_id1+'> 
    <td width="40%">'+file_name1+'</td> 
    <td>'+upload_date1+'</td> 
    <td><a href="sym.php?doc_id='+file_id1+'" class="view2_fl">VIEW FILE</a> | <a href="javascript:void(0);" class="del2_fl">DELETE</a></td> 
</tr> 

: -

$('.addfile_popup').on('click', '.del2_fl', function(){ 
var job_id=$(this).data('job'); 
var file="file_id="+$(this).data('file')+"&job_id="+job_id; 
$.ajax({ 
    type:"POST", 
    url:"admin_includes/del_fl.php", 
    data:file, 

    success:function(html){ 
     if(html=="2") 
     { 
      //delete row 

     } 
    } 
})//end ajax 
}); 

내 atempts이 특정 행을 삭제하는 내가하지 않는 나에게 문제를 일으키는 'this'를 사용하여 찾을 수있는 것 같습니다.

아이디어에 감사드립니다. 기본적으로

답변

0

success 핸들러에서, this$.ajaxSettings의 믹스 인 당신이 $.ajax()에 전달 된 옵션에 바인딩됩니다.

this이 호출자에 바인딩 된 것을 포함하여 this을 원하는 개체에 바인딩하도록 context 옵션을 지정할 수 있습니다. 여기에서, 당신은 제거 할 테이블 행을 찾을 closest() 필요합니다

$.ajax({ 
    type: "POST", 
    url: "admin_includes/del_fl.php", 
    data: file, 
    context: this, // Relay 'this' to 'success' handler. 
    success: function(html) { 
     if (html == "2") { 
      // Here, 'this' is the same as in the caller of '$.ajax()'. 
      $(this).closest("tr").remove(); 
     } 
    } 
}); 
+0

내가 같은 형태로 사용자가 파일을 추가 할 수있는 기능을 가지고 말을 실패라고 생각하지만,이 작업을 수행합니다. 사용자가 파일을 추가하고 파일을 제거하기로 결정하면 사라지지 않습니다. 제거 할 파일이 중복되면 모든 파일이 삭제됩니다. (그러나 이것은 지금 내가 변경 한 mysql에 이른다). 내게 가장 큰 문제는 이제 첨부 파일을 삭제하는 것입니다. (.on()을 사용하면이 문제를 해결할 수 있다고 생각했습니다.) – Sideshow

+0

이 문제는 독자의 의견만으로는 이해하기 쉽지 않습니다. 질문을 업데이트하면 문제를 명확히 할 수 있습니다. 자세한 정보 (파일을 추가하는 코드를 게시하는 것도 좋은 생각입니다). –