2012-05-15 2 views
1

데이터베이스의 값으로 테이블을 채우는 중입니다. 삭제할 수있는 행에 삭제 아이콘을 포함 시켰습니다. 내가 넣으면내 함수는 내 아약스 호출 후 경고와 함께 작동합니다.

function deleteCat(id){ 
    var dataString = "catId=" + id; 
    $.ajax({ 
     type: "POST", 
     url: "../ajax/categorie_verwijderen.php", 
     data: dataString, 
     success: function(data) { 
       //$("#allecat").find("tr:gt(0)").remove(); 
       //update_table();     
     } 
    }); 
    //alert(id); 
} 

내 함수의 작동이 내 deleteCat 기능

string = "<td align='center'><a href=''><img border='0' src='../images/Bullet-Delete.png' alt='delete' onclick='deleteCat("+json[i]['id']+");'/></a></td>";

입니다 : 이미지가 onclick='deleteCat(id);' 속성이의 ID가 JSON 배열에서 가져 루프과 같이 여물 아약스 후 경고. 테이블이 새로 고쳐지고 행이 내 DB에서 제거됩니다. 그러나 경고를 제거 할 때 내 함수가 작동하지 않습니다, 테이블을 새로 고치고 행은 여전히 ​​테이블 및 DB에 있습니다.

미리 감사드립니다.

+1

이 줄은 @ 자바 스크립트의 맨 위에 삽입 할 수도 있습니다. – Satya

+0

문제를 해결할 수 없으면 사용합니다. 감사합니다. –

답변

3

당신은 클릭의 기본 이벤트를 방지하기 위해 필요 - 페이지마다 다시로드되고, 즉 당신이

function deleteCat(id){ 
    var dataString = "catId=" + id; 
    $.ajax({ 
     type: "POST", 
     url: "../ajax/categorie_verwijderen.php", 
     data: dataString, 
     success: function(data) { 
       $("#allecat").find("tr:gt(0)").remove(); 
       update_table();     
     } 
    }); 
    return false; // prevent the browser following the href 
} 

당신은 또한 당신의 HTML을 변경해야합니다 이미지를 클릭 :

onclick='return deleteCat("+json[i]['id']+"); 
+0

나는 이미 전에 그것을 시도했다. 작동하지 않습니다. –

+0

@GlennVanCauwenbergh가 내 대답을 업데이트했습니다. 'onclick' 호출에'return '을 추가하는 방법에 대한 맨 아래쪽 비트를 참조하십시오. – ManseUK

+0

그 트릭을 수행했습니다. 고마워요! –

1

alert()는 해당 함수의 나머지 자바 스크립트 처리를 지연시키기 때문에 도움이됩니다. Ajax는 데이터를 비동기 적으로 보냅니다. 비동기 키는 Default : true이며, 클라이언트가 Ajax 호출이 끝날 때까지 대기 할 때까지 호출시 false으로 변경해야합니다. 예 :

$.ajax({ 
    async:false, 
    url: "test.html", 
    . 
    . 

}); 
+0

'dialog'에서'button '을 사용했기 때문에 이것은 저에게 효과적이었습니다. 단추 였기 때문에 (링크가 아님) 기본 동작은 URL로 이동하지 않는 것이 었습니다. 이것이'preventDefault()'가 여기서 작동하지 않는 이유입니다. 요청이 완료 될 때까지 함수가 대기해야하므로 'async : false'를 설정하면 나를 대신 할 수 있습니다. –

관련 문제