- ベストアンサー
HTML入力フォームの保存
HTMLで入力フォームを作った時にチェックボックスにチェックを入れ送信した後に、またそのHTMLのアンケートフォームを開いた時に初期値として前回送信したチェックが入っているようなプログラムを書きたいのですが、どうすればいいのかわかりません。Perlやhtmlで書きたいと思っているのですが書けますか?? どなたか教えてください!!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
1) フォームのパラメータを何かに保存 2) 保存したものを読み出す 3) フォームのパラメータのデフォルト値としてセット すればOKです。 モジュールを使っていいなら、例えば以下のようになります。アカウント管理していないことと、表示がくずれるので空白2文字を全角空白で書いていることに注意。 #!/usr/bin/perl -T use strict; use warnings; use utf8; use CGI; use CGI::Carp qw(fatalsToBrowser); use CGI::Pretty; use HTML::FillInForm; use Storable qw(nstore retrieve); use constant QUERY_FILE => './serialize.dat'; my $q = CGI->new(); my $html = do { local $/ = undef; <DATA> }; my $output; my $sended = $q->param('send'); if ( defined $sended ) { nstore( $q, QUERY_FILE ) || die QUERY_FILE; $output = HTML::FillInForm->fill( \$html, $q, target => 'form1' ) || die "$!"; } elsif ( -r QUERY_FILE ) { my $saved_query = retrieve(QUERY_FILE) || die QUERY_FILE; $output = HTML::FillInForm->fill( \$html, $saved_query, target => 'form1' ) || die "$!"; } else { $output = $html; } print $q->header( -charset => 'UTF-8' ), $output; __DATA__ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP"> <head> <title>Test HTML::FillInForm</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body bgcolor="#ffffff"> <form name="form1" method="POST"> Name : <input type="text" name="url" /> <br /> <input type="radio" name="look_behind" value="A" checked="checked" />Value A <input type="radio" name="look_behind" value="B" />Value B <input type="radio" name="look_behind" value="C" />Value C <br /> <input type="checkbox" name="checkbox1" value="ON" lablel="checkbox_label" />checkbox1 <input type="checkbox" name="checkbox2" value="ON" lablel="checkbox_label" />checkbox2 <br /> <select name="select1"> <option value="option1">option1</option> <option value="option2">option2</option> <option value="option3">option3</option> </select> <br /> <input type="submit" name="send" value="send" /> </form> </body> </html>
お礼
ありがとうございます。試してみます!