我有一個Wordpress Lists Table,每一行都有要刪除的選項。點擊<a class="delete_gallery" href="&action=delete">
我彈出一個jQueryUI對話框。當確認這個動作時,ajax會發生或者其他什麼,並且一些服務器端的東西被處理。成功時,我希望頁面刷新並顯示一條wordpress消息,說明刪除成功。jQuery AJAX頁面刷新顯示更改,然後是消息反饋
我希望頁面刷新的原因是因爲我的WP_List_Table沒有被Ajax化,我需要改變才能看到。
如何在頁面刷新後顯示消息?我目前使用的方式在刷新後立即顯示消息。我不想要任何延遲或任何事情:只要單擊對話框中的確認,我想要刷新頁面,發生服務器端事件,然後顯示成功消息。
這裏是我的一些代碼,爲簡單起見刪除了服務器端的var/info。注意:我使用內置Ajax的Wordpress。
jQuery(".delete_gallery").click(function(event) {
event.preventDefault();
var link = jQuery(this).attr('href');
var link = link.substring(0, link.indexOf('?'));
jQuery("#deleteconf").dialog({
height: 150,
width: 350,
resizable : false,
modal: true,
buttons: {
"Delete all items": function() {
jQuery(this).dialog("close");
jQuery.post(
MyAjax.ajaxurl,
{
action : 'delete_gallery',
postCommentNonce : MyAjax.postCommentNonce,
},
function(response) {
window.location.reload(link);
jQuery('#message p').html('The gallery was deleted successfully');
jQuery('#message').show();
}); return false;
},
Cancel: function() {
jQuery(this).dialog("close"); return false;
}
}
});
});
這是最好的方法嗎?如果是這樣,刷新後如何顯示消息。如果不是,最好的辦法是什麼?我真的想使用jQueryUI,我不希望有人點擊「好吧,項目被刪除」,頁面刷新並顯示更改。
我有類似的地方,但它使用表單和PHP來捕獲按鈕提交$ _POST,我不知道如果這是可能的,當使用jQueryUI按鈕。無論哪種方式,刷新後都沒有處理響應。
謝謝,我感謝所有幫助。
你爲什麼不直接用js在ajaxsuccess上從dom中刪除該行? – mikakun
我應該這樣做,但是之後我必須對行進行計數,如果是最後一行,則在刪除其他所有內容時顯示「沒有數據,請添加一些」消息。無論如何,我仍然想知道如何去做我上面描述的,因爲我浪費了很多時間! –
@mikakun在我等待答案時,我實施了您的解決方案。如果從多頁面的頁面中刪除一個圖庫,這可以很好地工作。但是,如果有多個圖庫頁面,則所有行都會被刪除,並且不會顯示圖庫的第二頁。因此,看起來真的沒有! –