Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery:创建要作为get参数传递的ID数组_Javascript_Php_Jquery_Arrays - Fatal编程技术网

Javascript Jquery:创建要作为get参数传递的ID数组

Javascript Jquery:创建要作为get参数传递的ID数组,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我有一个复选框列表,如下所示: <input type="checkbox" value="12" name="urssaf-check[]" class="urssaf-check"> <input type="checkbox" value="13" name="urssaf-check[]" class="urssaf-check"> 这给了我: ["12", "27", "26", "15", "28", "29", "30", "16", "14", "19

我有一个复选框列表,如下所示:

<input type="checkbox" value="12" name="urssaf-check[]" class="urssaf-check">
<input type="checkbox" value="13" name="urssaf-check[]" class="urssaf-check">
这给了我:

 ["12", "27", "26", "15", "28", "29", "30", "16", "14", "19", "17", "18", "20", "31", "32", "33", "21", "22", "34", "23", "24", "25"]
 ids=12&ids=27&ids=26&ids=15&ids=28......
到目前为止还不错,但现在我需要在url中使用它,这样当我在编写页面内容的控制器中执行$_GET['id']或类似操作时,我可以看到相同的数字数组

我现在尝试的是:

 var array = { ids : items };
 var params = $.param( array, true );
params给了我:

 ["12", "27", "26", "15", "28", "29", "30", "16", "14", "19", "17", "18", "20", "31", "32", "33", "21", "22", "34", "23", "24", "25"]
 ids=12&ids=27&ids=26&ids=15&ids=28......
在get参数的var_转储中,这将导致我只获取最后一项的id。如果我在“ids”之后手动添加[],它会工作得很好,但是我想知道用jQuery做这件事的正确方法是什么

编辑:我需要在不同的窗口中打开url,我是这样做的:

 function MM_openBrWindow(theURL,winName,features) { 
        window.open(theURL,winName,features);
 }
 MM_openBrWindow($(this).attr('data-url')+'/?'+params, 'name', "scrollbars=yes,width=1000,height=720");

可能您可以在将阵列发布到控制器时直接传递该阵列,例如:

$.post( "controller.php", { 'urssaf-check[]': items } );

如果您打算使用post或get发送它,则无需对其进行解析。

好吧,我将等待几天,但到目前为止,我做到了这一点,它对我来说仍然有效。但我仍然不高兴,认为需要更好的方法来解决这个问题:

            var params = "";
            for (var i = items.length - 1; i > 0; i--) {
                if(i==1){
                    params += 'operations[]='+items[i];
                }else{
                    params += 'operations[]='+items[i]+'&';
                }

            };

您使用查询字符串的目的是什么,希望不是ajax或类似的东西?是的,您需要添加[],因为这是php所期望的。当jQuery是数组时,它不知道名称需要[]。为什么不传递字符串而不是数组。。我的意思是,使用
join
在javascript中用特殊字符连接数组,然后在PHP代码中使用
explode()?使用for循环手动生成参数字符串?应该注意的是,如果这些复选框在表单中,那么您只需要
$('form').serialize()
即可获得所需内容,但这将保留元素名称等?要获得投票,请添加:
$.post(“controller.php”,$('urssaf check').serialize()。你的答案可能不正确。我没有测试。我需要在一个新窗口中打开它(我编辑了我的问题),所以帖子请求在这里对我没有帮助。无论如何,我会测试这个,并告诉它是否有效