2012-07-14 242 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

什麼結果* *是它給你? – 2012-07-15 00:21:09

+0

它的刪除,但頁面只是令人耳目一新,並帶我回到頂部。所以它工作。但是,我希望它刪除註釋,而不刷新頁面,並儘可能淡化div。 – dave 2012-07-15 00:24:26

+0

您上面發佈的JavaScript代碼不能成爲這個原因。但是,HTML代碼的末尾有一個表單,是否提交了刪除評論?你將不得不這樣做與JavaScript(即沒有表單提交)... – Aletheios 2012-07-15 00:28:19

回答

5

請勿使用提交操作的表單來刪除該評論。提交表單時,頁面會自動重新加載。而是使用一個簡單的元素與onclick處理程序來觸發AJAX請求:

<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 2012-07-15 00:36:56

+0

是的,我建議。我沒有完全理解你的代碼,因爲它有點混亂,但是如果你不想讓頁面刷新,你必須擺脫表單(或者表單提交事件)。 ;) – Aletheios 2012-07-15 00:39:27

+0

我已經更新了我的oringinal帖子,上面提到了你的建議。它不工作。 :/ – dave 2012-07-15 01:14:48