2016-08-23 48 views
0

我具有以下代码的JavaScript:

var configuration = []; 

configuration["step 1"] = val1; 
configuration["step 2"] = val2; 
configuration["step 3"] = val3; 
configuration["extraData"] = extra_data;   

var data = { 
    action: 'configuration_save', 
    config: configuration, 
}; 

$.post(ajaxurl, data, function (response) { 
    alert(response) 
}); 

$_POST['config']在PHP示出空的。我在传递数组时遇到任何错误。

PHP代码

$current_user = wp_get_current_user(); 
$user_id = $current_user->ID; 

add_user_meta($user_id, "CONFIG", $_POST['config']); 
+0

删除'''这里配置:配置,' –

+0

告诉我们'configuration_save'代码 –

+0

@TheFlash:仍然是空的 –

回答

0

使用下面更新一个

var main_configuration = [] ; 
    var configuration = []; 
    var configuration ={ 
      'step 1' : val1, 
      'step 2' : val2, 
      'step 3' : val3, 
      'extraData' : extra_data 
    }; 

    main_configuration.push(configuration); 

    var data = { 
      action: 'configuration_save', 
      config: main_configuration, 

      }; 
    $.post(ajaxurl, data, function (response) { 

       alert(response) 

    }); 
+0

我为什么要这样使用?我想要一个数组中的所有内容 –

+0

JavaScript不同地处理'[]'和'{}'。第一个仅用于编号数组,第二个(对象样式)只能有字符串键。 –

+0

然后使用configuration.push({“step 1”:val1});等等,它会工作 –