gpt4 book ai didi

php - 如何在 javascript/jQuery 中通过 url 发送数组

转载 作者:可可西里 更新时间:2023-11-01 13:35:19 25 4
gpt4 key购买 nike

我正在尝试通过 url 发送一个 javascript 数组,但它失败了

function viewReport(mode,someid){
if(mode==0){
var para= new Array();
para['para1'] = 'para1'||0;
para['para2']= 'para2' || 0;
console.log(para);
window.open('somePDFView/'+para,'_blank');
}else{
var para=[];
var paraelements={
para1:'anotherpara1'||0,
para2:'anotherpara2'||0
};
para[0]=paraelements;
window.open('somePDFView/'+para,'_blank');
}
}

if part(mode=0) 上,para 数组不再发送,在 else part (mode=1) 上para 是这样发送的:

somePDFView/[object Object]

显示错误:

The URI you submitted has disallowed characters

我们如何通过 url 发送一个数组。我不能使用 Ajax(因为它是一个弹出窗口)或 session 或存储在一个临时表中。另外我们如何在 Controller 中检索这个值。

编辑:

我错过了一件重要的事情,我正在使用 codeigniter。然后我认为它不允许特殊字符,如 - &、=、[、] 等。那么是否有任何其他方法可用于将数据作为数组发送?..

最佳答案

要通过 URL 从 Javascript 向 PHP/Codeigniter 发送参数数组,您需要执行两个步骤:

  1. 将您的参数数组转换为 JSON 字符串并将其作为单个查询参数发送。
    para = JSON.stringify(para);
    window.open('somePDFView?params='+para,'_blank');

  2. 在您的 Controller 中解码查询字符串参数(即 JSON 字符串)
    $params = json_decode($_GET['params']);

现在您可以通过 $params 访问在您的 Controller 上使用所有参数。

您的代码块变为:

function viewReport(mode,someid){    if(mode==0){        var para= new Array();        para['para1'] = 'para1'||0;        para['para2']= 'para2' || 0;        console.log(para);        para = JSON.stringify(para);        window.open('somePDFView?params='+para,'_blank');     }else{        var para=[];        var paraelements={          para1:'anotherpara1'||0,          para2:'anotherpara2'||0        };        para[0]=paraelements;        para = JSON.stringify(para);        window.open('somePDFView?params='+para,'_blank');     }}

试试这个,如果您仍然遇到这个问题,请告诉我。

关于php - 如何在 javascript/jQuery 中通过 url 发送数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18417265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com