http_build_query和URLSearchParams

时间:2019-09-03 13:51:49

标签: javascript php input

我有一个from数组名称为foo[]的输入,因此,在提交表单时,我的网址变为foo[]=lorem&foo[]=ipsum,但是当使用php http_build_query来重新生成这种查询时,它会向这样的数组foo[0]=lorem&foo[1]=ipsum

我的问题是,在前面,我使用URLSearchParams.getAll('foo[]')来获取值,但是它仅在没有http_build_query添加的数组键的情况下有效。

有没有办法以这种格式使用URLSearchParams

1 个答案:

答案 0 :(得分:0)

基于@Plamen Nikolov链接,我通过更改Javascript以处理具有或不具有索引键(由PHP通过http_build_query添加)的数组输入来解决此问题,如下所示:

// Before
let urlParams = new URLSearchParams(window.location.search);

// After
let urlQuery = decodeURI(window.location.search).replace(/\[\d+\]/g, "[]");
let urlParams = new URLSearchParams(urlQuery);