如何通过javascript/jQuery中的URL发送数组 [英] How to send an array via the url in javascript/jQuery

查看:444
本文介绍了如何通过javascript/jQuery中的URL发送数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am trying to send a javascript array via the url.But it fails

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数组不再发送,而在其他部分(mode=1)上, para是这样发送的:

On if part(mode=0), the para array is not sending any more and on else part (mode=1) the para is sends like this:

somePDFView/[object Object]

哪个显示错误:

您提交的URI不允许使用字符

The URI you submitted has disallowed characters

我们如何通过url发送数组.我不能使用Ajax(因为它有一个弹出窗口)或会话或存储在临时表中.也不能在控制器中检索此值.

How can we send an array via url.I can't use Ajax (because its a popup window) or session or storing in a temporary table.Also how can we retrieve this value in the controller.

我想念我正在使用Codeigniter的一件重要事情.然后我认为它不允许使用特殊字符--&,=,[,]等.因此,是否还有其他方法可以将数据作为数组发送?

I miss an important thing that I am using codeigniter. Then I think it disallows special characters like - &,=,[,],etc..So if any other methods available for sending data as an array?..

推荐答案

要将URL的参数数组从Javascript发送到PHP/Codeigniter,您需要执行以下两个步骤:

To send an array of params via URL from Javascript to PHP/Codeigniter, you need to follow 2 steps:

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

  1. Convert your params array to JSON String and send that as a single query param.
    para = JSON.stringify(para);
    window.open('somePDFView?params='+para,'_blank');

在控制器上解码查询字符串参数(即JSON字符串)
$params = json_decode($_GET['params']);

Decode the query string param (i.e JSON string) at your controller
$params = json_decode($_GET['params']);

现在您可以通过访问$ params在控制器上使用所有参数.

Now you can use all the params at your controller by accessing through $params.

您的代码块变为:


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'); 
    }
}

尝试一下,让我知道您是否仍然遇到此问题.

Try this out and let me know if you still faces this issue.

这篇关于如何通过javascript/jQuery中的URL发送数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆