Php 选中时,不同的复选框会将用户发送到不同的页面
我需要一个表单,其中的复选框将打开不同的页面,根据他们的选择,当表单提交 假设我有一个简单的表格:Php 选中时,不同的复选框会将用户发送到不同的页面,php,javascript,forms,checkbox,Php,Javascript,Forms,Checkbox,我需要一个表单,其中的复选框将打开不同的页面,根据他们的选择,当表单提交 假设我有一个简单的表格: <form action="" method="post"> <input value="1" type="checkbox" name="sign" /> <input value="2" type="checkbox" name="sign" /> <input value="3" type="checkbox" name="sig
<form action="" method="post">
<input value="1" type="checkbox" name="sign" />
<input value="2" type="checkbox" name="sign" />
<input value="3" type="checkbox" name="sign" />
<input value="4" type="checkbox" name="sign" />
<input value="5" type="checkbox" name="sign" />
<input type="submit" />
</form>
当用户检查值1并提交时,他将被重定向到A页。如果用户检查值1和4,他将被重定向到另一页(例如,F页)。如果用户选中2、3和4,他将被重定向到R页,依此类推。。。当用户提交表单时,该表单将有25种不同的组合,因此有25种不同的页面结果
换句话说,当表单以某种方式提交时,系统将读取选中的复选框,并将每个可能的组合与不同的URL关联
能做到吗?如果是,怎么做?有人做过类似的东西吗?我已经搜索了很长一段时间的解决方案,但只找到了稍微相似的解决方案,并不完全符合我的需要,因此希望您能提供帮助。HTML:
<form action="" method="post">
<input value="1" type="checkbox" name="sign[1]" />
<input value="2" type="checkbox" name="sign[2]" />
<input value="3" type="checkbox" name="sign[3]" />
<input value="4" type="checkbox" name="sign[4]" />
<input value="5" type="checkbox" name="sign[5]" />
<input type="submit" />
</form>
这可以通过两种方式实现。一种是可以使用javascript拦截表单提交,更改表单“action”的值,然后执行提交 第二种方法可能是将所有这些数据发送到一个脚本,并根据所选的值执行重定向到所需的页面。From应该如下所示:
<form action="" method="post">
<input value="1" type="checkbox" name="sign[]" />
<input value="2" type="checkbox" name="sign[]" />
<input value="3" type="checkbox" name="sign[]" />
<input value="4" type="checkbox" name="sign[]" />
<input value="5" type="checkbox" name="sign[]" />
<input type="submit" />
</form>
<>你可以把每一个输入都考虑一下。所以,你总是要考虑5个比特。 然后定义25个条目的关联数组,对应于每个可能的值:
00001
00010
...
var links = {
"00001" : "www.google.com",
];
然后,当您提交表单时,只需根据值设置
表单的target
属性。如果我是您,除了遵循这个想法之外别无选择,我会在jQuery中使用类似的方法(假设您的post Var在您想要访问的页面中处理):
$(“#myForm”).submit(函数(){
var checked_array=新数组();
$(“#myForm输入”)。每个(函数(){
如果($(this).is(“:选中”)
选中的_array.push($(this.attr(“value”));
});
if(选中的数组.索引(2)!=-1和选中的数组.索引(5)!=-1)
(“#myForm”).attr(“action”,“/url1.php”);
否则,如果等。。。
});
切换案例或if-else语句。我会选择if-else。但是会有25个这样的案例,就像你说的。使用Javascript。你不应该使用单选按钮吗?现在用户可以选择多个选项。他想要多个验证。是的,我需要多个选项,所以复选框而不是单选框buttons@Sean-他们是t他做了同样的事情,只是两种不同的方式。这只是个人喜好。是的,我知道他们是一样的……两种方法都有效,所以谢谢
if(!empty($_POST['sign'])) {
if(in_array(1, $_POST['sign'])) {
// if just 1, go to page
} elseif(in_array(1, $_POST['sign']) && in_array(4, $_POST['sign'])) {
// if 1 and 4, go to page
}
}
00001
00010
...
var links = {
"00001" : "www.google.com",
];
<form action="" method="post" id="myForm">
<input value="1" type="checkbox" name="sign[]" />
<input value="2" type="checkbox" name="sign[]" />
<input value="3" type="checkbox" name="sign[]" />
<input value="4" type="checkbox" name="sign[]" />
<input value="5" type="checkbox" name="sign[]" />
<input type="submit" />
</form>
$("#myForm").submit(function() {
var checked_array = new Array();
$("#myForm input").each(function() {
if ($(this).is(":checked")
checked_array.push($(this).attr("value"));
});
if ( checked_array.indexOf(2) !== -1 && checked_array.indexOf(5) !== -1)
("#myForm").attr("action", "/url1.php") ;
else if etc...
});