2017-05-03 143 views
0
add_action('wp_ajax_ybr_client_results', 'ybr_client_results'); 
add_action('wp_ajax_nopriv_ybr_client_results', 'ybr_client_results'); 

function ybr_client_results() { 
    $client_details = $_POST[ 'client_details' ]; 
    return $client_details; 
    die(); 
} 
echo ybr_client_results(); 

它返回值爲0.如何修復它。Wordpress Admin ajax請求函數返回值爲0時的回顯

+1

什麼就是爲什麼你應該呼應的原因應該從ajax腳本調用它之外的ajax函數。我也建議你使用WordPress函數wp_die(); – heero

+0

是的,這回聲沒有任何意義......查找'wp_send_json_success'和'wp_send_json_error'函數 – brasofilo

+0

我只是想傳遞這$ client_details變量值來從數據庫中獲取數據 –

回答

0

您已正確註冊AJAX回調;該代碼將在AJAX操作觸發時執行。該功能不應該被回顯。

有幾個與回調本身的問題:

  • 它返回一個變量,而不是產生輸出
  • 有上述die() return語句使該行從未達到

更正後的版本:

function ybr_client_results() { 
    /** 
    * I've left this unaltered for the sake of answering the question at hand. 
    * 
    * Don't forget to check the value exists and sanitize it correctly. 
    */ 
    $client_details = $_POST['client_details']; 

    // This AJAX callback needs to output something, not return. 
    echo $client_details; 

    // As another user mentioned, there's a WP specific die function. 
    wp_die(); 
} 
add_action('wp_ajax_ybr_client_results', 'ybr_client_results'); 
add_action('wp_ajax_nopriv_ybr_client_results', 'ybr_client_results'); 

文檔:https://codex.wordpress.org/AJAX_in_Plugins

+0

我只是想通過這個$ client_details變量值從數據庫中獲取數據 –

+0

上面的代碼應該解決您最初的問題,或者至少解決作爲該問題一部分發布的代碼中的所有缺陷。一旦你在AJAX回調中獲得了JS的價值,就可以以任何你喜歡的方式對待它。 –

0

你可以試試下面的下面的代碼片段從數據庫fetech數據,並使用json_encode()進行編碼,然後調用wp_die()

add_action('wp_ajax_ybr_client_results', 'ybr_client_results'); 
add_action('wp_ajax_nopriv_ybr_client_results', 'ybr_client_results'); 

function ybr_client_results() { 

    $client_details = $_POST[ 'client_details' ]; 

    $result = getPosts(); 

    echo json_encode($result, true); 

    wp_die(); 
}