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()代码>。你的答案可能不正确。我没有测试。我需要在一个新窗口中打开它(我编辑了我的问题),所以帖子请求在这里对我没有帮助。无论如何,我会测试这个,并告诉它是否有效