如何通过AJAX-Post传递嵌套的PHP-Array?

时间:2013-04-01 22:42:57

标签: php jquery ajax arrays post

我有一个期望的PHP脚本:

$_REQUEST['asdf']['bsdf']['csdf']

在调用时设置,我无法改变它。 我想通过ajax调用这个PHP脚本:

myurl = 'example-url.com';
myid = $(this.$element).attr('id'); //gets the id of a textfield: csdf
value = 'somevalue';

$.ajax({type: 'POST',
        url: myurl,
        data: {'asdf[bsdf][myid]': value},
        success: function (data) {
          /* blabla */
       }
});

虽然它不起作用,因为var“myid”没有填充假设值“csdf”。 有人可以帮我怎么做吗?

PS:我无法访问PHP文件,因此可能无法更改结构......

2 个答案:

答案 0 :(得分:0)

尝试这样的事情:

var myurl = 'example-url.com';
var myid = $(this.$element).attr('id'); //gets the id of a textfield: csdf
var value = 'somevalue';

var param = {};
param[myid] = value;

$.ajax({type: 'POST',
        url: myurl,
        data: {'asdf[bsdf]' : param},
        success: function (data) {

                 }
});

您可以在通过ajax调用传递的数据之外构建param对象,以保持正确的密钥。

答案 1 :(得分:0)

JS中的

... {
     ...
     data: {[['first', 'array', 'nested'], 'other', 'in', 'parent', 'array']},
     ...
}

在PHP中获取POST变量与其他句子

http://php.net/manual/en/reserved.variables.post.php