2013-09-16 44 views
-4

我传递数组使用从AJAX PHP的:在PHP中访问序列化数组?

data: { 
    imageData: ctx.imageData, 
    formData: $("#content-add-form").serializeArray() 
}, 

忽略的imageData,即时通讯只关注FORMDATA。这输出:

array(2) { [0]=> array(2) { ["name"]=> string(5) "title" ["value"]=> string(8) "my title" } [1]=> array(2) { ["name"]=> string(4) "date" ["value"]=> string(10) "16-09-2013" }} 

但是我怎样才能访问数组的每个部分使用密钥?

例如,

$_POST['title'] 
+3

当有疑问'var_dump($ _ REQUEST);'。 jquery的serializeArray()使用json。所以你可能会使用'json_decode()' –

+0

与json解码? – Freelancer

+0

Json解码不起作用 – panthro

回答

2

$_POST['formData']['name']怎么样?

编辑:

好像您的数据序列化这样的:

$_POST['formData'] < - 阵列的所有领域。

$_POST['formData'][0] < - 具有字段名称和第一个表单元素值的数组。

$_POST['formData'][0]['name'] < - 第一个表单元素的名称。

$_POST['formData'][0]['value'] < - 第一个表单元素的值。

我想你正在寻找最后一个。

编辑2:

也许这是你在找什么:

data: { 
    imageData: ctx.imageData, 
    formData: $("#content-add-form").serialize() 
}, 

http://api.jquery.com/serialize/

编辑3:

你说得对。这一定是:

// Get the form data. 
var data = ("#content-add-form").serialize(); 

// Add additional data. 
data.imageData = ctx.imageData; 

data: data, 
+0

这不起作用。 – panthro

+0

您更新的答案也不起作用。我需要通过键访问每个项目而不是数字。 – panthro

+0

.serialize()只是发送一个字符串,我无法访问数组元素与此 – panthro