2016-07-20 2 views
0

目的:ボタンを「お気に入りに追加」し、選択した商品の地図が表示されたページを作成します。 私のお気に入りは、私がfinction ids_function()とページリターンnull呼んで選択商品のマップとページ内のfunctions.phpなぜwp_send_jsonがnullを返す

add_action('wp_ajax_ids', 'ids_function'); 
add_action('wp_ajax_nopriv_ids', 'ids_function');  

function ids_function() 
{ 
    $myArray = array($_REQUEST['id']); 
    wp_send_json($myArray); 

} 

にJS-クッキーの配列

liked = $.cookie("liked"); 
$.ajax({ 
    type: "GET", 
    url: ajaxurl, 
    data: { 
     action : 'ids', 
     id : liked 
    }, 
    success: function (response) { 
    console.log('AJAX response : ',response); 
} 

に保存されているIDを投稿してください。しかし、console.logにはneed配列があります。私のページでそれを得る方法? TNX!

+0

あなたは 'null'なのでを生成するコードを投稿することができます? '$( '。mydiv')。html( 'response =' + response);'のように 'response = null'を出力しますか? – gregn3

+0

'<? ids_function(); ?> 'これは' null'を生成します。 PHP配列のidが必要です。 –

+0

あなたはそれがヌルであることをどうやって知っていますか?あなたは通常、console.logに内容を書き込むと言っていますか? その関数 'wp_send_json()'も 'die()'を呼び出し、PHPでは返されません。 – gregn3

答えて

0

これが達成しようとしているかどうかは不明ですが、PHPから呼び出されたときにも機能するようにその関数を書き直すことができます。

function ids_function ($is_ajax = true) 
{ 
    $myArray = array($_REQUEST['id']); 
    if ($is_ajax) 
    { 
     # NOTE: it die()-s here (after outputting the JSON data) 
     wp_send_json($myArray); 
    } 
    return $myArray; 
} 

次に、あなたはこのようにPHPからそれを呼び出すことができます。

$myarray = ids_function (false); 

また、PHPとJavascriptが異なる時間に実行されることを考える...

+0

$ myarray = ids_function(false); print_r($ myarray); //返すArray([0] =>) - 動作しません –

+0

これを試してください: 'echo '

' . print_r ($_COOKIE, true) . '
';'。あなたのデータがそこにあるかどうかを確認してください。 $ _REQUESTの内容も印刷してみてください。それがあるかどうかを確認してください。クッキー内にある場合は、ページの読み込み時にブラウザによって送信されます。 次に、ids_function()内のそのデータを読み取ることができます。たとえば、 'if(!$ is_ajax){/ * $ _COOKIEまたは$ _REQUEST * /}からデータを読み込みます。 ' – gregn3

+1

ありがとうございます! '$ _COOKIE'は私が必要とするものです! '$ posts = get_posts($ _ COOKIE ['liked']);'うまく動作します! –

関連する問題