这就是表单操作的用途 - 在这里您将指定表单的去向。
使用jQuery,您可以编辑特定事件的表单操作。为您的表单提供一个 id,例如my_form
您的复选框描述性 id:
<form id="my_form" action="" method="get" name="combination" target="_self">
<input id="pop_check" type="checkbox" name="tag[]" value="pop" />pop<br /><br />
<input id="rock_check" type="checkbox" name="tag[]" value="rock" />rock<br /><br />
<input type="checkbox" name="tag[]" value="indie" />indie<br /><br />
<input type="checkbox" name="tag[]" value="electronic" />electronic<br />
<input name="" type="submit">
</form>
然后,在表单下方,您可以编写以下 jQuery 代码:
<script type="text/javascript">
$("checkbox[name='tag']").on("click", function( //when any of the checkboxes is clicked the following code runs
if($("#pop_check").is(":checked") || $("#rock_check").is(":checked")){ //if one of the two target check boxes is checked, the form action will be changed as desired
$("#my_form").attr("action","www.mysite.com/?view=listen");
}else if(!$("#pop_check").is(":checked") && !$("#rock_check").is(":checked")){ //since the user can also toggle off all checkboxes again, we need to check for that too and change the form action back to "" if required
$("#my_form").attr("action","");
}
));
</script>
如果你(即将)学习 jQuery,我强烈推荐它。这里有一些非常好的教程,您可能会觉得有帮助,它们教会了我几乎所有关于 jQuery 的知识:http ://thenewboston.org/list.php?cat=32
编辑
还有另一种方法可以做到这一点。在提交表单后运行的 php 代码中,您可以简单地检查是否选中了两个复选框中的任何一个,并根据该复选框使用 php 的标头函数进行重定向:
<?php
//After form submission with form action="" (i.e. at the top of your php file)
if(in_array("pop", $_GET['tag']) || in_array("rock", $_GET['tag'])){
header('Location:www.mysite.com/?view=listen&tag=pop&tag=rock');
exit;
}
?>
实际上,那么您应该使用 post 作为表单方法而不是 get,因为表单结果不需要可收藏。阅读更多关于 php 的内置header()和in_array()函数。