2017-05-03 12 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(); 
} 
関連する問題