2017-01-28 41 views
1

嗨,大家需要帮助与Ajax发送对象数组数据到PHP我的观点是从JavaScript获取2数组数据,然后使用Ajax发送数据对象到PHP并保存到数据库我的信息如何从Ajax发布对象数组数据到PHP

var group_data = []; 
group_data.push({ 
    member: member_ids, 
    overlap: overlaps 
}); 

[Object] 
0:Object 
    member: Array[3] 
    0:"1070" 
    1:"1179" 
    2:"1180"  
    overlap: Array[4] 
    0:"Friday 02:30 UTC - Friday 03:30 UTC" 
    1:"Friday 10:00 UTC - Friday 23:00 UTC" 
    2:"Sunday 03:00 UTC - Sunday 04:00 UTC" 
    3:"Sunday 08:00 UTC - Sunday 09:00 UTC" 

,这我阿贾克斯从阿贾克斯

add_action('wp_ajax_send_matching_group', 'send_matching_group'); 
    function send_matching_group() { 

     global $wpdb; 

     $tableGroup = 'wp_wlm_member_groups'; 
     $tableUser = 'wp_wlm_user_options'; 

     $overlaps = array(); 
     $member_ids = array(); 

     foreach($data as $group_data){ 
      array_push($overlaps,$group_data['overlap']); 
      array_push($member_ids,$group_data['member']); 
     } 

      if ($wpdb->insert($tableGroup, array('name' => 'Matching Group','on_status' => 'matching_group','on_step'=>'matching_group' ,'group_lv' => 'Participants','facilitators' => '', 'start'=>'', 'overlaps'=>$overlaps))){ 
       $group_id = $wpdb->insert_id; 

       foreach ($member_ids as $user_id){ 
        $data = array('user_id'=>$user_id, 'option_name'=>'group_id', 'option_value'=>$group_id, 'autoload'=>'yes'); 
        $wpdb->replace($tableUser, $data); 
       } 
       wp_redirect('admin.php?page=group-match-list'); 
       exit; 
      } 

     echo 1; 
     wp_die(); 

    } 
发送数据

$.post(ajaxurl,{ 'action': 'send_matching_group', 'group_data': group_data, }, function(data){ 

}).done(function(){ 
console.log(group_data); 

}); 

这我的PHP获取POST数据

结果是什么也得不到数据库

+0

我不你真的了解你的代码,但是你是否尝试将你的数组转换成json呢? – bugscoder

回答

0

,同时发送给php(server)侧转换array/objectjson string

使用'group_data': JSON.stringify(group_data)

和PHP端做:

$group_data=json_decode($_POST['group_data'],true);//this should give you the array