複数のチェックボックスを一括で更新

このQ&Aのポイント
  • データをPerlで読み込み、HTMLでチェックボックスと並べています。チェックを入れるとチェックを入れた状態を更新したいです。
  • 行の数は不特定でPerlで読み込んだり、書き込んだりしています。チェックボックスには$idがついており、名前が付けられています。
  • モジュールを使わずに実現する方法を教えてください。
回答を見る
  • ベストアンサー

複数のチェックボックスを一括で更新

データをPerlで読み込み、下のようにHTMLでチェックボックスと並べています。 年月日  名前 チェック 20060101 山田 □ 20060501 山田 □ 20060404 田中 □ 20060811 中田 □ 20060901 斉藤 □ 20061003 宮前 □ |更新ボタン| →ボタンをクリックすると更新 チェックを入れるとチェックを入れた状態を1なり値なりで更新されるようにしたいです。 データ↓ 1,20060101,山田,1 2,20060501,山田, 3,20060404,田中, 4,20060811,中田,1 5,20060901,斉藤, 6,20061003,宮前,          ↑の"1"がチェックしたところです。 行(レコード)の数は不特定でPERLで読み込んだり、書き込んだりしています。 チェックボックスには$idがついており、1行1行、name=1とかname=2、name=3と名前が付けられています。 なるべくここまできたらモジュールを使わないで実現したいところです。 わかりやすい方法を教えて頂ければ幸いです。 よろしくお願いします。

noname#102619
noname#102619
  • Perl
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.1

例えば、以下のようなCGI(chk.cgiというファイル名で)を作ってみて、実行してみてください。 チェックしたり、チェックをはずしたりして、submitを繰り返し実行してみると、どうすれば よいか、イメージがわきませんか? #!/usr/bin/perl print "Content-type: text/html\n\n"; print qq!<form action="chk.cgi" method="POST">!; print qq!<input type="submit"><br>!; print qq!<input type="checkbox" name="1">20060101 山田</br>!; print qq!<input type="checkbox" name="2">20060501 山田</br>!; print qq!<input type="checkbox" name="3">20060404 田中</br>!; print qq!<input type="checkbox" name="4">20060811 中田</br>!; print qq!<input type="checkbox" name="5">20060901 斉藤</br>!; print qq!<input type="checkbox" name="6">20061003 宮前</br>!; print qq!</form>!; print "<hr>"; #<form method="POST" ... の場合 read(STDIN, $s, $ENV{'CONTENT_LENGTH'}); foreach(split(/&/, $s)){ print $_, "<br>"; ($n,$v)=split; my($n, $v) = split /=/; $checked_id{$n} = $v; } #<form method="GET" ... の場合 #foreach(split(/&/, $ENV{QUERY_STRING})){ # print $_, "<br>"; # ($n,$v)=split; # my($n, $v) = split /=/; # $checked_id{$n} = $v; #} print "<hr>"; foreach(1..6){ if(exists($checked_id{$_})){ print "$_ チェック済<br>"; }else{ print "$_ 未チェック<br>"; } }

noname#102619
質問者

お礼

すごい。。。わざわざ本当にありがとうございます。 こうやればチェックの値が取れるんですね。 なんとなくわかってきました。 検証中なのですが、(自分の)値を取るルーチンと合わないためまだ検証を続けなければなりません。 もうしばらくお待ちくださいm(__)m

noname#102619
質問者

補足

おかげさまでヒントをつかみロジックを理解できました。 こんな方法でできるなんてちょっと予想外。 素晴らしいプログラムをありがとうございました。

関連するQ&A

  • 複数のチェックボックス

    困ってます。 前回ボタンクリックでチェックボックス768個を全部ONにしたりOFFにしたりするプログラムを教えてもらい何とかできたのですが、768個のチェックボックスを1個1個押したときのプログラムを一つにまとめたい場合は、どうすればよかったのでしょうか。 前回教えてもらった物をヒントに作ったのですが思った動きをしません。 初心者にわかりやすく教えてもらえますか。 ボタンクリックと同じ場所に飛ばしているせいか  Select Case DirectCast(sender, Button).Name のbuttonでエラーが出ることが分かっています。 ただいろいろやりましたがSelectCase文で行っても1個のチェックボックスには反応しますがほかのチェックボックスは無視します。 よろしくお願いします。

  • HTML チェックボックスで複数の値

    初心者です。 HTMLで下記のような計算ができるシートを作成しようと思っています。 表   A B C □ D E F □ G H I [計算] (□はチェックボックス) チェックボックスをチェックし、計算ボタンを押すと1行目(A,B,C)と選択したチェックボックスの行のそれぞれの列の値の割り算を行い、その結果を合計した数を表示させることを考えています。 チェックボックスをチェックすることでデータを一つ取り込むことはできたのですが、複数データ(列データ)を取り込む方法がよくわかりません。 ご存じの方教えていただけないでしょうか。 初心者ですので、実際のコードから教えて頂けるとありがたいです。 よろしくお願いします。 

  • チェックボックスの一括チェック

    ボタンをクリックしたときに チェックボックスの一括チェック が行われるようにしたいのです チェックボックスの名前は g1 g2 g3 g4 g5 g6 フォーム名は mlForm なので <script language="Javascript"> function zen_cl1() { document.mlForm.g1.click(); document.mlForm.g2.click(); document.mlForm.g3.click(); document.mlForm.g4.click(); document.mlForm.g5.click(); document.mlForm.g6.click(); } </script> ボタンを <input name="zencheck" type="button" id="zencheck" onClick="zen_cl1()" value="全部選択/解除"> このように書くと エラーが起こるのです いい方法はないでしょうか

    • ベストアンサー
    • HTML
  • excel マクロ <フィルタ>

    excelのマクロで分からないことがあるので質問させてもらいます。 たとえば↓の写真のようなデータがあったとして、アルファベットさん(Aさん~Nさん)だけを表示するマクロを作る時は、フィルタをして、番号1~14にチェックをつけて・・・ってことをすると思います。そこに、ボタンをつけたいと思っています。 ボタン(チェックボックス)A、ボタン(チェックボックス)B、ボタン(チェックボックス)C、ボタンD、ボタンEをつけたいと思います。 ボタンAを押すと(チェックをつけると)→アルファベットさん(Aさん~Nさん)だけを表示 ボタンBを押すと(チェックをつけると)→山田、田中、鈴木だけを表示 ボタンCを押すと(チェックをつけると)→斉藤、佐藤、高橋、渡辺、伊藤だけを表示 で A、Bにチェックをつけるとアルファベットさんと山田、田中、鈴木を表示 B、Cにチェックをつけると山田、田中、鈴木、斉藤、佐藤、高橋、渡辺、伊藤を表示 ボタンDを押して、フィルタを解除。 ボタンEを押して、フィルタされた範囲を印刷。 ・・・・・という風に・・・ 【ボタンか、チェックボックスって書いたのは、どちらを使ったらいいのかわからないからであって、ほかにもフォームの種類がありますから、最適なのがありましたら教えてください。】 まとめると、データをボタンで絞り込んで(解除もできる)、ボタンで印刷したい。ということです。 結構、初心者なので、質問の内容がよくわからないかもしれませんけど、わかりやすく教えてください。 お願いします。

  • チェックボックス連結

    MySQLで、perlを使ってチェックボックスでデータを送信するのですが、 カラムを分けずに、チェックボックスで複数選択されたデータを、;などの仕切りで同一フィールドへ記録したいのですが、やり方がわかりません。 <input type = checkbox name = col1 value="1"> <input type = checkbox name = col1 value="2"> <input type = checkbox name = col1 value="3"> <input type = checkbox name = col1 value="4"> 結果 col1 |col2 | +-------------- 1;2;3;4| | のような感じです。よろしくお願いします。

    • ベストアンサー
    • MySQL
  • 1つのページ内に複数の更新ボタンを配置して、各ボタンにぱすわーどを設定

    1つのページ内に複数の更新ボタンを配置して、各ボタンにぱすわーどを設定 することは可能でしょうか? 例えば、 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー | NO | 名前 | 項目1 | 項目2 |項目3 | 項目4 |   更新  | ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー |  1  | 鈴木 |  □   |   □  |  □  |  □   |  ボタン  | ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー |  2  | 佐藤 |  □   |   □  |  □  |  □   |  ボタン  | ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー |  3  | 田中 |  □   |   □  |  □  |  □   |  ボタン  | ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー の様に、各人ごとにチェックボックスの入力を更新出来る様なものが出来ればと 考えています。 詳しい方、よろしくお願いします。

    • ベストアンサー
    • CGI
  • htmlのフォームのチェックボックスを繰り返し文等を使って複数作りたい

    htmlのフォームのチェックボックスを繰り返し文等を使って複数作りたいのですが、どのように書けば良いのかわかりません。 自分はhtml、PHP、Perlの基本的なことはわかります。 例えば、以下のようなチェックボックスを繰り返し文などを使って作るとすると、どのように書けばよいのでしょうか? <input type="checkbox" name="test">test1 <input type="checkbox" name="test">test2 <input type="checkbox" name="test">test3 <input type="checkbox" name="test">test4 <input type="checkbox" name="test">test5 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 複数のテキストボックスに対する入力チェック

    こんにちは。PHPでDBのテーブル内容変更画面を作成しています。PHPでDB内のデータを取得し、それをwhileで列数分回してテキストボックスの中に表示させ、その中身を変えて変更ボタンを押せば変更、削除ボタンを押せば削除したりできるような画面です。 変更(UPDATE)にあたってJavaScriptで入力チェック(空欄チェックとバイト数チェック)をかけたいのですが、1行だけしか出力されない(=DBテーブル内にデータが1行分しかない)場合にはチェックが有効なのですが、複数行になるとチェックしてくれません。 JavaScriptでは複数行のチェック(?)には配列を使わなければならないと知りましたが、PHPのfetch関数を使って回して表示しているため、行数がいくつになるかはわかりません。行数をどうやって取得すればいいのか、ご存知の方がいらっしゃいましたらぜひご教授ください。よろしくお願いいたします。

  • excel 重複したデータのコピー

    例えばこんなデータがあるとします。 名前  値 鈴木  1 佐藤  2 佐藤  5 小林  2 田中  3 田中  1 田中  2 斉藤  0 山田  4 山田  2 というデータから 佐藤  2 佐藤  5 田中  3 田中  1 田中  2 山田  4 山田  2 という感じで名前が2つ以上あるデータだけ抽出・コピーをしたいのですが、 どういう風にすれば出来るでしょうか。

  • Perl初心者です。同一データを数えるには

    perl 超!初心者です。同一データの数え上げ。 あまり上手く説明できませんがよろしくお願いします。 ある行から行までの同一データを数え上げる処理をしたいです。 例えば、以下のようなデータがあるとします。 --------------------- <NAME> 田中 佐藤 佐藤 山田 田中 <NAME> 佐藤 田中 渡辺 渡辺 佐藤 ------------------- while (<>){ $linecount{$_}++; } foreach $line (sort{$linecount{$b} <=> $linecount{$a}}keys%linecount) { print $linecount{$line}," ",$line if($linecount{$line} >= 1); } これで、行の重複回数と、データを出力はできたのですが、 さらに、<NAME>で区切ってそれぞれの区分で同一データの数を数えていきたいです。結果としては <NAME> 2 田中 2 佐藤 1 山田 <NAME> 2 渡辺 2 佐藤 1 田中 と出力したいのですが、どうすればよいでしょうか?

    • ベストアンサー
    • Perl