2012-07-14 2 views
1

페이지를 새로 고치지 않고도 div 및 ajax 링크를 사용하여 데이터를 전달하는 최상의 방법/결과는 무엇입니까? 내가 클릭 할 때 내 의견과 div가 사라지기를 원하며 페이지를 새로 고치고 싶지 않습니다. 그래서 내가 코멘트를 지우는 곳을 정확하게 유지합니다.Ajax로 주석 삭제

나는 이것을 시도했다, 그러나 그것은

<script> 
function delete_(pid){ 
$.ajax({ 
    type: "POST", 
    url: "include/post.delete.php", 
    data: "pid="+pid, 
    success: function(){ 
    $("#comment-"+pid).remove(); 
    } 
}); 
} 
</script> 
<? if($streamitem_data['streamitem_creator']==$_SESSION['id']){ 
echo "<div style='cursor:pointer;' onclick=\"delete_('".$streamitem_data['streamitem_id']."');\">Delete comment</div>"; 

작동하지 그러나 그것은 나에게 내가 필요 이상의 결과를 포기하지 않을거야. 어쩌면 내가 잘못된 일을하고있을 수도 있지만 가능한 경우 도움이 필요합니다.

+0

* * 당신을주고 어떤 결과 대신 AJAX 요청을 트리거하는 onclick 핸들러와 함께 간단한 요소를 사용? –

+0

삭제 중이지만 페이지가 새로 고쳐지고 상단으로 다시 이동합니다. 그래서 작동합니다. 하지만 페이지를 새로 고치지 않고 가능한 한 주석을 삭제하고 가능한 경우 div를 사라지게하고 싶습니다. – dave

+0

위에서 게시 한 자바 스크립트 코드가 그 이유가 될 수 없습니다. HTML 코드 끝 부분에 양식이 있지만 댓글을 삭제하기 위해 제출 한 것입니까? JavaScript (즉, 양식 제출 없음)를 사용하여이 작업을 수행해야합니다. – Aletheios

답변

5

제출 조치가있는 양식을 사용하여 해당 의견을 삭제하지 마십시오. 양식을 제출할 때 페이지가 자동으로 다시로드됩니다.

<div onclick="delete_('anyID');">Delete comment</div> 

편집 : 예 :

<head> 
<script src="jquery.min.js"></script> 
<script type="text/javascript"> 
function delete_(pid){ 
$.ajax({ 
    type: "POST", 
    url: "include/post.delete.php", 
    data: "pid="+pid, 
    success: function(){ 
    $("#comment-"+pid).remove(); 
    } 
}); 
} 
</script> 
</head> 

<body> 
<div id="comment-123">This is a comment.</div> 
<div onclick="delete_('123');">Delete comment</div> 
</body> 
+0

그래서 전체 양식을 제거하고 위의 방아쇠로 바꿉니 까? – dave

+0

그래, 그걸 제안 할거야. 코드가 복잡해 짐에 따라 코드를 완전히 이해하지 못했지만 페이지를 새로 고치지 않으려면 양식 (또는 양식 제출 이벤트)을 제거해야합니다. ;) – Aletheios

+0

나는 위에서 제안한 내용으로 내 oringinal post를 업데이트했습니다. 작동하지 않습니다. :/ – dave