2012-03-15 9 views
0

は、私は次のコードを持っている:

var social_buttons_array = []; 
social_buttons_array["google"] = $("input[name='social_popup_google']").is(":checked") ? 1 : 0; 
social_buttons_array["twitter"] = $("input[name='social_popup_twitter']").is(":checked") ? 1 : 0; 
social_buttons_array["twitter_follow"] = $("input[name='social_popup_twitter_follow']").is(":checked") ? 1 : 0; 
social_buttons_array["facebook"] = $("input[name='social_popup_facebook']").is(":checked") ? 1 : 0; 

をそして私はこのような配列を渡ししようとしています:これはない作品を

$.get(
    ajaxurl, 
    { 
     action: 'process_data', 
     get: 'social_popup', 
     social_buttons_array : social_buttons_array // not works 
    }, 
    function(response) { 
    }, 
    'json' 
    ); 

ください。配列を渡すための任意のアイデア?


EDIT & &ソリューション

私は配列として動作するオブジェクトによってassociative arrayを置き換えるために、この質問を編集します。

var social_buttons_array = new Object(); 
social_buttons_array.google = $("input[name='social_popup_google']").is(":checked") ? 1 : 0; 
social_buttons_array.twitter = $("input[name='social_popup_twitter']").is(":checked") ? 1 : 0; 
social_buttons_array.twitter_follow = $("input[name='social_popup_twitter_follow']").is(":checked") ? 1 : 0; 
social_buttons_array.facebook = $("input[name='social_popup_facebook']").is(":checked") ? 1 : 0; 

$.get(
    ajaxurl, 
    { 
     action: 'process_data', 
     get: 'social_popup', 
     social_buttons_array : JSON.stringify(social_buttons_array) // it works great over an object 
    }, 
    function(response) { 
    }, 
    'json' 
    ); 

私たちに必要なPHPのこの配列/オブジェクトを管理するには:

$social_buttons_array = json_decode(stripslashes($_GET['social_buttons_array'])); 

をそして、我々は、オブジェクトとして、このVARを管理する必要があります。

echo $social_buttons_array->google 
// results in 1 or 0 

答えて

3

JSON.stringify()でそれをシリアライズ?

social_buttons_array : JSON.stringify(social_buttons_array) 
+0

ありがとうございました。あなたは正しい方向に私を置く... –

1

GETリクエストフォームでURLに値を配置します

page.php?arg1=value&arg2=value2 

あなたが何らかの形で文字列値に変換しない限り、あなただけの、多分JSON形式で(連想配列を渡すことはできません嫌悪感が示唆されたように)。

別のオプションは、辞書の各キーをURLパラメータとして渡すことです。このような何かを送信します

var urlParams = { 
    action: 'process_data', 
    get: 'social_popup', 
}; 

for (key in social_buttons_array) { 
    urlParams[key] = social_buttons_array[key]; 
} 

$.get(ajaxurl, urlParams, function(data) { 
    $('.result').html(data); 
}); 

は:

page.php?action=process_data&get=social_popup&google=0&twitter=0&twitter_follow=0&facebook=0 

それは本当にあなたがサーバー側でそのデータを処理しようとしているかによって決まります。

+0

+1ありがとう、それは良い、貴重な解決策です。しかし、私は配列のようなデータを渡す必要があります。 –

関連する問題