问题是这样的,学校有个空教室查询程序,我要引用其功能,表单界面代码如下:
<form action = "query.php" method = "get">
<input type="checkbox" name="teachingbuilding" value ="1" >教1
<input type="checkbox" name="teachingbuilding" value ="2">教2
<input type="checkbox" name="teachingbuilding" value ="3">教3
<input type="checkbox" name="teachingbuilding" value ="4">教4<br />
<input type="checkbox" name="floor" value ="1">一楼
<input type="checkbox" name="floor" value ="2">二楼
<input type="checkbox" name="floor" value ="3">三楼
<input type="checkbox" name="floor" value ="4">四楼
<input type="checkbox" name="floor" value ="5">五楼<br />
<input type="checkbox" name="weekday" value ="1">周一
<input type="checkbox" name="weekday" value ="2">周二
<input type="checkbox" name="weekday" value ="3">周三
<input type="checkbox" name="weekday" value ="4">周四
<input type="checkbox" name="weekday" value ="5">周五<br />
<input type="checkbox" name="classtime" value ="1">第一大节
<input type="checkbox" name="classtime" value ="2">第二大节
<input type="checkbox" name="classtime" value ="3">第三大节
<input type="checkbox" name="classtime" value ="4">第四大节
<input type="checkbox" name="classtime" value ="5">第五大节<br /><input type="submit" value="提交">
</form>这是用get方法提交的,但是,当name值相同的框如floor被选择多个的话,就会已这样的形式递交query.php?floor=1&floor=2,这样的话,实际执行的是query.php?floor=2 而这个floor=1则被忽略了,正确的格式应该是这样的:
同name的传递多个值query.php?floor=1,2,3 即值按照从小到大的顺序,每个值已逗号隔开
如,效果这样query.php?teachingbuilding=1,2,3&floor=1,2&weekday=1,2,3,4&classtime=1,2
我想可以用js加个onSubmit来做,但不知道怎么做,求解答
或者也可以不用js,但请给个思路
ps:php文件不能改源码,所以只能改传递的参数
<form action = "query.php" method = "get">
<input type="checkbox" name="teachingbuilding" value ="1" >教1
<input type="checkbox" name="teachingbuilding" value ="2">教2
<input type="checkbox" name="teachingbuilding" value ="3">教3
<input type="checkbox" name="teachingbuilding" value ="4">教4<br />
<input type="checkbox" name="floor" value ="1">一楼
<input type="checkbox" name="floor" value ="2">二楼
<input type="checkbox" name="floor" value ="3">三楼
<input type="checkbox" name="floor" value ="4">四楼
<input type="checkbox" name="floor" value ="5">五楼<br />
<input type="checkbox" name="weekday" value ="1">周一
<input type="checkbox" name="weekday" value ="2">周二
<input type="checkbox" name="weekday" value ="3">周三
<input type="checkbox" name="weekday" value ="4">周四
<input type="checkbox" name="weekday" value ="5">周五<br />
<input type="checkbox" name="classtime" value ="1">第一大节
<input type="checkbox" name="classtime" value ="2">第二大节
<input type="checkbox" name="classtime" value ="3">第三大节
<input type="checkbox" name="classtime" value ="4">第四大节
<input type="checkbox" name="classtime" value ="5">第五大节<br /><input type="submit" value="提交">
</form>这是用get方法提交的,但是,当name值相同的框如floor被选择多个的话,就会已这样的形式递交query.php?floor=1&floor=2,这样的话,实际执行的是query.php?floor=2 而这个floor=1则被忽略了,正确的格式应该是这样的:
同name的传递多个值query.php?floor=1,2,3 即值按照从小到大的顺序,每个值已逗号隔开
如,效果这样query.php?teachingbuilding=1,2,3&floor=1,2&weekday=1,2,3,4&classtime=1,2
我想可以用js加个onSubmit来做,但不知道怎么做,求解答
或者也可以不用js,但请给个思路
ps:php文件不能改源码,所以只能改传递的参数
onsubmit里将所有值,用分号连接赋值给隐藏域
<script>
function getValue(name)
{
var floors=document.getElementsByName(name);
var floor='';
for(var i=0;i<floors.length;i++)
{
floor+=floors[i].value;
if(i!=floors.length-1)
{
floor+=',';
}
}
return floor;
}function submit1()
{
var action = 'query.php?floor='+getValue('floor');
alert(action);
document.forms[0].action=action;
document.forms[0].submit();
}
</script>
<body>
<form method = "get">
<input type="checkbox" name="teachingbuilding" value ="1" >教1
<input type="checkbox" name="teachingbuilding" value ="2">教2
<input type="checkbox" name="teachingbuilding" value ="3">教3
<input type="checkbox" name="teachingbuilding" value ="4">教4<br />
<input type="checkbox" name="floor" value ="1">一楼
<input type="checkbox" name="floor" value ="2">二楼
<input type="checkbox" name="floor" value ="3">三楼
<input type="checkbox" name="floor" value ="4">四楼
<input type="checkbox" name="floor" value ="5">五楼<br />
<input type="checkbox" name="weekday" value ="1">周一
<input type="checkbox" name="weekday" value ="2">周二
<input type="checkbox" name="weekday" value ="3">周三
<input type="checkbox" name="weekday" value ="4">周四
<input type="checkbox" name="weekday" value ="5">周五<br />
<input type="checkbox" name="classtime" value ="1">第一大节
<input type="checkbox" name="classtime" value ="2">第二大节
<input type="checkbox" name="classtime" value ="3">第三大节
<input type="checkbox" name="classtime" value ="4">第四大节
<input type="checkbox" name="classtime" value ="5">第五大节<br />
<input type='button' onclick="submit1()" value="提交">
</form>
</body>
晕,不行啊,参数还是以query.php?floor=1&floor=2&floor=3&floor=4&floor=5这样的方式递交的
应该是这样的query.php?floor=1,2,3,4,5
<input type="checkbox" name="teachingbuilding[]" value ="1" >教1
<input type="checkbox" name="teachingbuilding[]" value ="2">教2
<input type="checkbox" name="teachingbuilding[]" value ="3">教3
<input type="checkbox" name="teachingbuilding[]" value ="4">教4<br />
<input type="checkbox" name="floor[]" value ="1">一楼
<input type="checkbox" name="floor[]" value ="2">二楼
<input type="checkbox" name="floor[]" value ="3">三楼
<input type="checkbox" name="floor[]" value ="4">四楼
<input type="checkbox" name="floor[]" value ="5">五楼<br />
<input type="checkbox" name="weekday[]" value ="1">周一
<input type="checkbox" name="weekday[]" value ="2">周二
<input type="checkbox" name="weekday[]" value ="3">周三
<input type="checkbox" name="weekday[]" value ="4">周四
<input type="checkbox" name="weekday[]" value ="5">周五<br />
<input type="checkbox" name="classtime[]" value ="1">第一大节
<input type="checkbox" name="classtime[]" value ="2">第二大节
<input type="checkbox" name="classtime[]" value ="3">第三大节
<input type="checkbox" name="classtime[]" value ="4">第四大节
<input type="checkbox" name="classtime[]" value ="5">第五大节<br /><input type="submit" value="提交">
</form>query.php:
<?php
print_r($_GET['floor']);
//print_r($_POST['floor']);
?>用数组varname[]
function getValue(name)
{
var floors=document.getElementsByName(name);
var floor='';
for(var i=0;i<floors.length;i++)
{
if(floors[i].checked)
{
floor+=floors[i].value;
floor+=',';
}
}
return floor.substr(0,floor.length-1);
}function submit1()
{
var action = 'query.php?floor='+getValue('floor')+"&weekday="+getValue('weekday');
alert(action);
document.forms[0].action=action;
document.forms[0].submit();
}
</script>
<body>
<form method = "get">
<input type="checkbox" name="teachingbuilding" value ="1" >教1
<input type="checkbox" name="teachingbuilding" value ="2">教2
<input type="checkbox" name="teachingbuilding" value ="3">教3
<input type="checkbox" name="teachingbuilding" value ="4">教4<br />
<input type="checkbox" name="floor" value ="1">一楼
<input type="checkbox" name="floor" value ="2">二楼
<input type="checkbox" name="floor" value ="3">三楼
<input type="checkbox" name="floor" value ="4">四楼
<input type="checkbox" name="floor" value ="5">五楼<br />
<input type="checkbox" name="weekday" value ="1">周一
<input type="checkbox" name="weekday" value ="2">周二
<input type="checkbox" name="weekday" value ="3">周三
<input type="checkbox" name="weekday" value ="4">周四
<input type="checkbox" name="weekday" value ="5">周五<br />
<input type="checkbox" name="classtime" value ="1">第一大节
<input type="checkbox" name="classtime" value ="2">第二大节
<input type="checkbox" name="classtime" value ="3">第三大节
<input type="checkbox" name="classtime" value ="4">第四大节
<input type="checkbox" name="classtime" value ="5">第五大节<br />
<input type='button' onclick="submit1()" value="提交">
</form>
</body>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>标签</title>
<script src="jquery-1.3.2.js"></script>
<script>
$(document).ready(function(){
$("#btn").click(function(){
var i = 0;
var teachingbuilding_value ="teachingbuilding=";
$("input[name=teachingbuilding]:checked").each(function(){
i++;
if(i==$("input[name=teachingbuilding]:checked").length){
teachingbuilding_value += $(this).val();
}else{
teachingbuilding_value += $(this).val()+",";
}
});
var floor_value ="floor=";
var j =0;
$("input[name=floor]:checked").each(function(){
j++;
if(j==$("input[name=floor]:checked").length){
floor_value += $(this).val();
}else{
floor_value += $(this).val()+",";
}
});
var k =0;
var weekday_value ="weekday=";
$("input[name=weekday]:checked").each(function(){
k++;
if(k==$("input[name=weekday]:checked").length){
weekday_value += $(this).val();
}else{
weekday_value += $(this).val()+",";
}
});
var n = 0
var classtime_value ="classtime=";
$("input[name=classtime]:checked").each(function(){
n++;
if(n==$("input[name=classtime]:checked").length){
classtime_value += $(this).val();
}else{
classtime_value += $(this).val()+",";
}
});
var action = "query.php?" + teachingbuilding_value + "&" + floor_value + "&" +weekday_value + "&" + classtime_value;
alert(action)
//$(this).parent("form").action = action;
document.forms[0].action = action;
});
});
</script>
</head><body>
<form method = "get" action="">
<input type="checkbox" name="teachingbuilding" value ="1" >教1
<input type="checkbox" name="teachingbuilding" value ="2">教2
<input type="checkbox" name="teachingbuilding" value ="3">教3
<input type="checkbox" name="teachingbuilding" value ="4">教4<br />
<input type="checkbox" name="floor" value ="1">一楼
<input type="checkbox" name="floor" value ="2">二楼
<input type="checkbox" name="floor" value ="3">三楼
<input type="checkbox" name="floor" value ="4">四楼
<input type="checkbox" name="floor" value ="5">五楼<br />
<input type="checkbox" name="weekday" value ="1">周一
<input type="checkbox" name="weekday" value ="2">周二
<input type="checkbox" name="weekday" value ="3">周三
<input type="checkbox" name="weekday" value ="4">周四
<input type="checkbox" name="weekday" value ="5">周五<br />
<input type="checkbox" name="classtime" value ="1">第一大节
<input type="checkbox" name="classtime" value ="2">第二大节
<input type="checkbox" name="classtime" value ="3">第三大节
<input type="checkbox" name="classtime" value ="4">第四大节
<input type="checkbox" name="classtime" value ="5">第五大节<br />
<input type='button' id="btn" onclick="#" value="提交">
</form>
</body>
</html>
你在用的时候有断章取义的嫌疑这段代码你加上了吗?
<input type='button' onclick="submit1()" value="提交">
不会还有的是<input type="submit" value="提交">吧?