htmlの中でcheckboxのデータをcgifile で表示できません。構成は
入力用のhtml file、それを受け取るcgi file、表示用のalert.htmlファイルです。

my $kako = $query->param('kako'); #html fileからのデータ受け取り用です

#下のスクリプトは表示のためのperlコードとして書いています。

if($e_kako){
$t_kako.="<input type=\"checkbox\" name=\"kako\" value=\"裁断\"> 裁断 ";
$t_kako.="<input type=\"checkbox\" name=\"kako\" value=\"中とじ\"> 中とじ ";
$t_kako.="<input type=\"checkbox\" name=\"kako\" value=\"無線綴\"> 無線綴 ";
$t_kako.="<input type=\"checkbox\" name=\"kako\" value=\"穴開け\"> 穴開け";
}else{
$t_kako = "$kako <input type=\"hidden\" name=\"kako\" value=\"$kako\">\n";
}

#alert.htmlには下のようにして渡しています。
sub replaceTags{
foreach (@html){
s/<CGI:error message>/$errMsg/i;
s/<CGI:error num>/$errNum/i;
s/<CGI:kako>/$t_kako/i;

データの渡し方がわからないのでよろしくお願いします。
下の場合はうまくいってます。

# page
$t_page="<input type=\"text\" size=\"10\"";
$t_page .= "name=\"page\" value=\"$page\">\n";

このQ&Aに関連する最新のQ&A

A 回答 (1件)

プログラムの書き方は人それぞれなので、このソースだけでは正しい回答ができるかどうか分かりませんが・・・。



checkboxは同じ名前を持つものを複数選択できるので、一つの変数に入れても上書きされてしまいます。ですので、通常、checkboxの値は配列に格納します。
push(@kako,$query->param('kako'););

ソース全体が分からないので、詳しい回答ができませんが、'kako'の部分を何かの変数にいれて、nameを判別しているとしたら、
if($name eq 'kako'){
push(@kako,$query->param('kako'););
}else{
...
}
このように書けます。
もし一つしか選択させないのであれば、radioを使って今まで通りのやり方で通用します。

この回答への補足

早速ご回答いただきありがとうございます。

for($kako eq 'kako'){
push(@kako,$query->param('kako'));
$t_kako=@kako;     #左の変数か配列をhtml fileに<CGI:$t_kako の様に渡したいのですが?
{
でいったん読み込みました。

ついでにお教えいただきたいのですが、
@kakoの配列をalert.html(データ表示用でcgi fileから

sub replaceTags{
foreach (@html){
s/<CGI:error message>/$errMsg/i;
s/<CGI:error num>/$errNum/i;
s/<CGI:kako>/$t_kako/i;

の用にしてデータを渡したいのですが、渡し方をお教え下さい。

補足日時:2001/06/28 23:16
    • good
    • 0
この回答へのお礼

ご返事送れて、すみません。
(遅れすぎ(-_-; )
今、良く理解できます。

お礼日時:2002/10/22 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報