I have the following code:
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;
And I am trying to pass the array like this:
$.get(
ajaxurl,
{
action: 'process_data',
get: 'social_popup',
social_buttons_array : social_buttons_array // not works
},
function(response) {
},
'json'
);
This do not works. Any idea to pass the array?
EDIT && solution
I edit this question to replace the associative array by an object that will act as an 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'
);
To manage this array/object in php we need:
$social_buttons_array = json_decode(stripslashes($_GET['social_buttons_array']));
And then we must manage this var as an object:
echo $social_buttons_array->google
// results in 1 or 0
Serialize it with JSON.stringify()?