これがフォームアクションの目的です。ここでは、フォームの移動先を指定します。
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コードでは、2つのチェックボックスのいずれかが選択されているかどうかを確認し、それに応じて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;
}
?>
実際、フォームの結果をブックマーク可能にする必要がないため、getではなくpostをフォームメソッドとして使用する必要があります。phpの組み込みheader()およびin_array()関数の詳細をご覧ください。