人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlでフォーム部品を使った CGIを作っています。
下のようなソースなのですが、ラジオボタンのデフォルト値の扱いがうまくできません。
やりたいのは、CGIを最初に起動したときは「OFF」、
ラジオボタンを好きに設定変更してたとえば「ON」に変更した後、
「処理スタート」ボタンを押したり、F5キーで更新したりしても
自分で設定した「ON」が維持されているようにしたいです。

下のソースのように、"off"の方に「Checked」をつけると
ボタンを押したり更新するたびに「OFF」に戻ってしまいます。
その他いろいろやってみたのですが、うまくいきません。
どうしたら上記のようなことができるでしょうか?

ブラウザはIE8です。

use CGI qw(param);

$AutoMode = param('AutoMode');

if( $AutoMode eq "" ){
$AutoMode = "off";
}

print <<HTML1;

<html>
<body>

<form name="test" action="radio.cgi" method="post">

<input type="radio" name="AutoMode" value="off" Checked> 自動モード OFF<br>
<input type="radio" name="AutoMode" value="on"> 自動モード ON<br>
<br>
<input type="submit" value="処理スタート"><br>

</form>

</body>
</html>

HTML1

exit;


●質問者: uta_at_home
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI EQ EXIT IE8 ON
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● shintabo
●200ポイント ベストアンサー

# こーいぅーことですか?

#!/usr/local/bin/perl

use strict;

use warnings;

use CGI qw(param);

my $AutoMode = param('AutoMode');

my $OffMode;

if( $AutoMode eq "on" ){

$AutoMode = "checked";

} else {

$OffMode = "checked";

}

print "Content-type:text/html\n\n";

print <<HTML1;</p>

<html>

<body>

<form name="test" action="hatena.cgi" method="post">

<input type="radio" name="AutoMode" value="off" $OffMode> 自動モード OFF

<input type="radio" name="AutoMode" value="on" $AutoMode> 自動モード ON


<input type="submit" value="処理スタート">

</form>

</body>

</html>

HTML1

exit;

◎質問者からの返答

ありがとうございます。

そういうことです!


私のやりたかったことは、shintaboさんの書いてくれたソースでほぼできました。

(似たことを自分でもやったつもりだったのですが、そのときは、なぜかうまくいきませんでした。

変数をmy宣言しなかったからかな?)


「自動モードON」を選択。「処理スタート」を押す前に、F5キーで更新。

とすると「自動モードOFF」に戻ってしまいますが、これはしょうがないですかね?


2 ● shintabo
●150ポイント

> 「自動モードON」を選択。「処理スタート」を押す前に、F5キーで更新。

>

> とすると「自動モードOFF」に戻ってしまいますが、これはしょうがないですかね?

それは、Cookieとか使わないとダメです。

radioのonclickで、

document.cookie = "xxx";

して、

cgi側で、$cgi = CGI->new(); $cgi->cookie(xxx)で分岐する

とか、

もしくは、onclickでsubmitしちゃうのもアリですね。

◎質問者からの返答

重ね重ね、ありがとうございます。


あれはクッキーを使っているのですね。

onclickでsubmitは仕様上まずいので、

教えてもらった方法でクッキーに挑戦してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ