通过Axios将带有对象的数组传递给PHP

通过Axios将带有对象的数组传递给PHP,php,arrays,json,axios,Php,Arrays,Json,Axios,我试图通过Axios post将包含对象的数组传递给PHP。 我正在使用formData附加或设置数据 const product_id_list = [{ title: 'hello' }, { title: 'ohhello' }] const bodyFormData = new FormData(); bodyFormData.append('post_id', post_id) bodyFormData.append('action', 'uploadShowcaseContent'

我试图通过Axios post将包含对象的数组传递给PHP。 我正在使用formData附加或设置数据

const product_id_list = [{ title: 'hello' }, { title: 'ohhello' }]

const bodyFormData = new FormData();
bodyFormData.append('post_id', post_id)
bodyFormData.append('action', 'uploadShowcaseContent')

product_id_list.forEach((item) => {
   bodyFormData.append('product_id_list[]',item);
});

axios.post(`${__WP_VARS.AJAX_URL}`, bodyFormData)
     .then((resp) => {
         console.log('post respect is', resp)
     })
然后在我的PHP中,我尝试循环遍历数组并获取标题字符串

$content = $_POST['product_id_list'];
$content变量告诉我我有一个数组。 但是,当我在数组上执行foreach时

foreach ($content as $item) {
    echo $item;
}
在控制台响应中,我得到数据:“[object object][object]”

当我试图呼应标题时

foreach ($content as $item) {
    echo $item->title;
}
我得到一个空字符串


在通过AXIOS传递对象键和值时,我一直在试图弄清楚如何在PHP中循环并获取对象键和值。

在这里,您传递了一个字符串,多次更改值:

bodyFormData.append('product_id_list[]',item);
因此,实际上发送的是字符串而不是数组。 您应该在发送数组和对象之前将其字符串化:

const product_id_list = [{ title: 'hello' }, { title: 'ohhello' }]

const bodyFormData = new FormData();
bodyFormData.append('post_id', post_id)
bodyFormData.append('action', 'uploadShowcaseContent')
bodyFormData.append('product_id_list',JSON.stringify(product_id_list));

...
然后,要查看您在php中实际收到的内容:

$content = $_POST['product_id_list'];
var_dump($content)

做一个
print\r($\u POST['product\u id\u list')
这样您就可以看到正在传递的数组的大小和形状。例如,在打开PHP标记后进行测试时,也可以将其添加到文件的顶部。即使您是在配置为LIVE的服务器上开发,现在也会看到任何错误<代码>@riggsfully我得到数据:“数组↵(↵ [0]=>[对象]↵ [1] =>[对象]↵)↵1“这就是一切吗?@RiggsFolly。是的,这就是一切,但在PHP中,我不确定如何实际获取标题键和值。即使我执行$item->title,或$item['title']谢谢,所以我也会得到var\u dump“string(47)\”[{\\\\'title\\\\\:\\\\\\'hello\\\\\\\\\\,{\\\\\'title\\\\\:\\\\\\\\'ohhello\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\↵" 然而,在PHP端,即使我试图解码$content,我也不知道如何循环它。我似乎无法检索标题OK。现在在PHP中删除var_dump,并更改:
$content=json_decode($content,1);
然后在下一行
echo$content[0]['title']
如果删除JSON.stringify(…从js中,在php中的var_dump上,您会得到什么?如果删除JSON.stringify和var_dump$内容,我会得到返回数据:“string(31)\”[object object],[object object]\”↵"