2012-10-19 4 views
0

현재 HTML로 표를 작성한 레코드에 대해 작업하고 있습니다. 레코드는 데이터베이스에서 가져온 것이므로 해당 테이블의 마지막 부분에 일부 편집 EDITE 표시, 나는 이미 내 DELETE, 내 DELETE 작업을 아약스를 사용하여 이루어집니다 같은 편집을 한 적이 있지만 문제는 내가 제대로 각 단추의 ID를 포함하는 각 단추의 값을 얻을 수 없다는 것입니다. 데이터 베이스.jQuery/Javascript/PHP를 사용하여 HTML 표의 레코드를 삭제하는 방법

이 삭제 버튼이있는 테이블의 일부입니다

<td width="61"><button id="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

이 JQuery와 부분

$("#delete").click(function(){ 
    alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

문제는 내가 제대로의 가치를 얻을 수 없다는 것입니다 버튼을 눌렀을 때, 내가 어떻게하는지, 어떤 제안이 크게 감사드립니다.

이것은 전체 테이블의 모습입니다

enter image description here

+0

.... 여기에 편집을 위해 mehoded proposee 및 actio을 보여 ''$ arr [0] ''에는 데이터베이스의 ID가 들어 있습니까? –

답변

6

되지 않음 0 테스트,하지만 난 문제가 당신이 당신의 생성 된 HTML을 보지 않고 (나는 알 수 없다 아마 당신의 삭제 버튼을 모두 인 #delete에 대한 모든 경기의 val()을 얻어내는 것이 목적입니다 기대).

는 실제로 독특한 요소를 참조해야 HTML 사양에 따른, id로, delete의 클래스를 사용하고 .delete보다는 id으로 선택해야합니다.

$("#delete").click(function(){ 
    // note the use of `this` to refer to clicked object, rather than all delete buttons 
    alert($(this).val()); 
    //AJAX PART HERE 
}) 
+0

ohhh 스크래치 마지막 코멘트, 클래스에 ID를 변경하려면 잘 작동하고 예 jquery 선택기 그 id 및 모든 말한 같은 모든 단추를 선택한 생각 : D tnx man – lemoncodes

+1

그래서' 여러 요소에 대해'id'를 사용하고,'class'를 사용합니다. –

0

첫째, 그냥 사용 jQuery의 '이'내에서 버튼에 액세스 할 '오류'와 '성공'

$("#delete").click(function(){ 
    var id = $(this).attr('id'); 
    //AJAX PART HERE 
    $.get('delete.php?id=xxx',function(status){ 
     if (status == 'success') $(this).parent().remove(); 
    } 
}) 
0

처럼 delete.php, 반환 상태와 같은 서버 측에서 방법을 삭제 쓰기 함수 ...

예 :

alert($(this).val()); 
+0

그 반응이 느린 비트 ... 빌리가 말한 것 :-) – pswillies

0

버튼의 값은 텍스트로에 표시되는 내용입니다 함께

alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 

교체,하지만 그건 당신에게 테이블의 ID를받지 않습니다. 또한 삭제 단추가 여러 개 있기 때문에 ID 대신 클래스를 사용하십시오.

가 삭제 된 기록을 찾을 것이다 통해 "DB-ID"라는 사용자 지정 속성을 사용하여, 이런 일에 HTML 코드를 변경

: 다음

<input class="delete" db-id="<?=$db-id?>" value="Delete"/> 

를, 당신의 js 코드를 조정할 수 있습니다 같은 : 성공의 기능에 당신도 데이터 행이 사용 사라지게 할 수

$(".delete").click(function(){ 
    var dbid = $(this).attr('db-id'); 
    $.ajax({ 
     type: 'POST', 
     url: 'script-url/here.php' 
     data: 'id=' + dbid, 
     success: function(feedback){ 
      if(success==true) $('tr[db-id="' + dbid + '"]').delete 
     } 
    }).error(){ 
     alert('Something went horribly wrong!'); 
    }; 
}) 

.delete()

또한 어떤 m가 있습니다 악의적 인 사용자는 브라우저에서 버튼의 db-id를 편집 할 수 있으므로 PHP 스크립트에서 필요한 모든 예방 조치 및 유효성 검사를 수행하십시오!

0

이 시도 :

$("button[id=delete]").click(function(){ 
     $(this).closest('tr').remove(); // Delete row 
     alert($(this).attr('value')); // ID 
    }); 

버튼 [ID를 = 삭제] - 당신은 같은 ID를 가진 많은 버튼,보다 효율적으로 사용하는 CSS의 클래스를해야하기 때문에 ... 여기서 확인

0

당신의 솔루션입니다 :

1) insted of id = "delete"사용 클래스. 이 같은 :

<td width="61"><button class="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

2) JQuery와 같아야합니다

$(".delete").click(function(){ 
    alert($(this).val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

이는 PROPPER ID를 경고한다, 내가해야 하는가

관련 문제