我正在使用jQuery標籤來編寫使用WordPress的郵件系統。重點在於,當用戶單擊一個表示一個對話的選項卡時,將使用jQuery選項卡的功能自動執行AJAX調用。我編程的jQuery標籤調用一個動作(我也編程)。該動作使用WordPress編程在PHP中,我可以通過localhost/mywebpage/wp-admin/admin-ajax.php?action = my_action調用它。使用WordPress將JSON對象發送到jQuery標籤的AJAX
問題是:jQuery選項卡的默認功能需要PHP文件的原始輸出(ajax操作)。這意味着我必須在PHP文件上編寫HTML代碼,以便將響應放在選項卡面板(ui.panel.html)上。不過,我認爲這是效率低下,我想創建一個JSON對象使用在ui.ajaxSettings.dataFilter函數接收到的WordPres函數wp_send_json_success(jsonObject)。
當我將HTML發送到ui.ajaxSettings.dataFilter函數時,所有內容都正確顯示在jQuery選項卡面板上。但是,當我發送json成功時,我可以在控制檯上看到它,但我無法在jQuery選項卡面板上顯示它。它出現一毫秒,然後消失。所以JSON對象正在接收,但由於某種原因無法顯示。在jQuery選項卡面板上顯示的唯一方法是通過我的PHP函數發送原始HTML。這裏是一個非常簡單的代碼示例:
這是JS功能:
$(selector).tabs({
beforeLoad: function(event, ui) {
ui.ajaxSettings.dataFilter = function(response) {
console.log(response);
ui.panel.html(response);
}
});
這是PHP函數,做工不錯:
<?php
echo 'Hello World!';
這是一個顯示在PHP函數面板一毫秒然後消失。
<?php
wp_send_json_success('Hello World!);
在我看來,我覺得其他的東西正在執行和擦除什麼我都顯示在ui.panel.html但我不是在jQuery的標籤,專家,所以如果有任何人在那裏有更多經驗那可以告訴我它發生了什麼,我真的很感激它。
您是否檢查http://api.jqueryui.com/tabs/#method-refresh? – Twisty