複数のチェックボックスから複数の分岐先に値を保持
恥ずかしながら、どなたかご指導いただければとても助かります。
稚拙なソースで、かつ間違いだらけで見づらいと思いますがどうぞよろしくお願いします。
・複数のCheckboxの値を、複数設定したボタンで分岐した時に、その値をそれぞれで引き継ぎたい
(Aボタンを押してもBボタンを押しても、チェックした値は同じ値を引き継いでいく、という意味)
・Checkboxの数は多いため、全選択or全解除のボタンを使用したい(Javascript利用)
・可能であればボタンは以前に作成した画像を利用したい(例 icon_A-button.gif)
ここで、<Form> に action を入れないとCheckboxの値は引き継がれず、入れてしまうとその移動先にしか移動できない
また </Form> を入れる位置は本来であれば※1であると思うがここに入れると、移動もできない
※2の位置だと、反映はされるが、Bボタンを押してもAボタンの行き先に飛んで行ってしまう etc etc・・・
<Form></Form>の位置や、Javascriptのlocationなど色々と試してみましたがどうもうまくいきません
onClickなど、JavaScript またはセッションなどを利用した方がよいのでしょうが、方法が判りません。
どうかよろしくお願いいたします。
confirm.php
<HTML>
<HEAD>
<TITLE></TITLE>
<script language="javascript">
<!--
function allcheck(formName, checkboxName, bool) {
for(i = 0; i<eval('document.' + formName + '.elements["' + checkboxName + '"].length'); i++) {
eval('document.' + formName + '.elements["' + checkboxName + '"][' + i + '].checked = ' + bool);
}
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<? $Data = array('A-data','B-data','C-data','D-data');?>
<form action = "view1.php" method ="post" name ="form1">
<input type=checkbox name='ChkData[]' value = "<? print $Data[0]; ?>">
<input type=checkbox name='ChkData[]' value = "<? print $Data[1]; ?>">
<input type=checkbox name='ChkData[]' value = "<? print $Data[2]; ?>">
<input type=checkbox name='ChkData[]' value = "<? print $Data[3]; ?>">
<INPUT TYPE="button" onClick=allcheck('form1','ChkData[]',true) VALUE= "All-ON">
<INPUT TYPE="button" onClick=allcheck('form1','ChkData[]',false) VALUE= "All-OFF">
※1 </form>
<input type = "image" value="A-button" src="icon_A-button.gif" name="form1" onClick=location.href="view1.php">
<input type = "image" value="B-button" src="icon_B-button.gif" name="form1" onClick=location.href="view2.php">
※2 </form>
</BODY>
</HTML>
view1.php view2.php ・・・複数ボタンの飛ぶ先のソースの例
<?
if( isset( $_POST[ 'ChkData' ] ) ){
$cbx_values = $_POST[ 'ChkData' ];
for( $i = 0; $i < count( $cbx_values ); $i ++ ){
print "送信された内容{$cbx_values[$i]} <br/>";
}
}
?>
多分基本的なことなのでしょうが、全く見当がつきません。
以上ご指導の程、宜しくお願いいたします。
お礼
貴重なご意見、ありがとうございます