【问题标题】:passing array/object in $.POST在 $.POST 中传递数组/对象
【发布时间】:2016-12-30 08:44:03
【问题描述】:

我有以下代码 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']);

【问题讨论】:

  • 在此处删除, config: configuration,
  • 告诉我们configuration_save代码
  • @TheFlash : 还是空的
  • 我想看看您在发布数据后如何处理数据 - 请出示该代码
  • 像这样声明新的关联数组,var configuration = {};

标签: php jquery arrays post


【解决方案1】:

使用下面更新的一个

    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)

    });

【讨论】:

  • 我为什么要这样使用?我想要一个数组中的所有内容
  • JavaScript 对待 []{} 的方式不同。第一个仅用于编号数组,第二个(对象样式)只能有字符串键。
  • 然后使用 configuration.push({"step 1": val1});等等它会工作
  • @Kool-Mind 无需您的 main_configuration 即可工作。你能告诉我为什么它不工作吗?我们什么时候需要解析数组或者什么时候需要使用 json_encode , decode
  • @CapitalC : 所以数组不能有字符串键??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多