我有一个学生列表,每个学生都有一个相应的复选框。复选框值包含我需要传递给控制器函数的学生id。我有一段javascript代码,它可以检测复选框选中的值,并将其存储到javascript数组变量中。然后,javascript数组变量将被传递到$.window url,该url地址指向我的codeigniter控制器函数。当你选择第一个学生时,这很好用,它将通过var_dump方法显示学生id,但是,如果选择第二个或第三个学生,它会显示你提交的uri有不允许的字符。选中所有复选框时的响应相同。javascript数组变量似乎只向我的codeigniter控制器函数传递了一个值,只接受学生列表的第一个值。我如何通过$.window的javascipt url来传递第二个、第三个等等的校验值,或者甚至是传递javascript数组变量给codeigniter控制器函数。图片和代码如下所示。非常感谢。
图像仅选择第一个学生列表

单击发送电子邮件按钮后的控制器输出图像

选择第二个学生的图像

单击发送电子邮件按钮后的控制器输出图像

选择所有学生列表的图像

单击发送电子邮件按钮后的控制器输出图像

Javascript:
<script type="text/javascript">
$("#send_email").click(function(){
var cboxes = document.getElementsByName('student_id[]');
var checked_val= [];
var unchecked_val=[];
var len = cboxes.length;
for (var i=0; i<len; i++) {
(cboxes[i].checked) ? checked_val[i]=cboxes[i].value:unchecked_val[i]=cboxes[i].value;
}
$.window({
title: "Coursebooking",
url: "<?php echo base_url() ?>student_controller/pop_val/"+checked_val,
});
});
</script>控制器:
function pop_val(){
$stud_id = $this->uri->segment(3);
var_dump($stud_id);
}发布于 2013-07-03 17:20:37
我修改过的javascript代码。但是,此更改仅适用于获取正在检查的学生列表的第二个值,与获取正在检查的第三个学生列表的正确值相同。但是同时选中所有复选框将返回一个uri错误,说明“您提交的URI包含不允许的字符”。
<script type="text/javascript">
$("#send_email").click(function(){
var cboxes = document.getElementsByName('student_id[]');
var checked_val= [];
var unchecked_val=[];
var array_val=new Array();
var len = cboxes.length;
for (var i=0; i<len; i++) {
if(cboxes[i].checked){
checked_val[i]=cboxes[i].value;
array_val.push(checked_val[i]);
}
}
$.window({
title: "Coursebooking",
url: "<?php echo base_url() ?>ajax_student_controller/pop_val/" + array_val,
});
});
</script>图为选择列表中的第二个学生

控制器输出返回正确的值

图为选择列表中的第三名学生

控制器输出返回正确的值

选择列表中的所有学生的图像

静止控制器输出返回uri错误

https://stackoverflow.com/questions/17443315
复制相似问题