WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:VALUEの持ち越しの仕方

フ−ミン [MAIL] [WriteDate : Sat Nov 25 14:16:06 2000]

フ−ミンといいます。
CGIは全くの初心者です。質問させて頂きますが、
もしも「こんなの簡単すぎ!自分で考えろ」という事だったら
本当に申し訳ないです。

よくある「ナンとか度鑑定」みたいなのを作っているんですが、
色んなところを参考にしてみると、質問のページが大体1ページで
納まっています。下の方にどんどんスクロールさせて行って、
最後に「判定」とかのボタンを押して結果に飛びますよね。
ですが、あんまり質問が多くなると、スクロールさせるのが
デザイン的にかっこわるいと思うのです。
そこで、
「質問が数ページに渡る場合の、VALUEの持ち越しの仕方」
を教えて頂きたいのです。
INPUT TYPEをhiddenにするのが何か関係あるんだと思うのですが…。

初心者丸出しの質問で申し訳ないです。
どなたかアドバイスして下されば幸いです。

ちゃいぱ [WriteDate : Sat Nov 25 21:40:05 2000]

>INPUT TYPEをhiddenにするのが何か関係あるんだと思うのですが…。
この場合は、あまり関係が無いです。
1ページCGIとの違いは、質問の回答データをCGIで受け取ってファイルにし、最後にまとめて処理することです。

処理的には、1ページCGIよりは、難しくなります。

ちなみに、hiddenを使うときは、入力データ以外の情報を渡す時につかいます。

 



バギンズ [WriteDate : Sun Nov 26 01:20:33 2000]

>ちゃいぱさん
フォーム内のデータ連携させるときは、INPUT TYPE=HIDDENでいいと思いますよ。

1ページ目で送られてきた入力データを、2ページ目にINPUT TYPE=HIDDENで渡してあげて、2ページ目で送られてきた入力データ(1ページ目のデータも含む)でまとめて処理すればいいと思います。

毎回ファイルにしたら、いちいち誰が送信したかを識別しないといけませんし、2ページ目を必ず送信するとも限りませんので、1ページ目のデータの削除タイミングなども考えなくてはならず、かえって複雑になってしまいます。

>フーミンさん
「1ページ目で送られてきた入力データを、2ページ目にINPUT TYPE=HIDDENで渡す」って意味がわかりますか?
具体例とかが必要でしょうか?

ちゃいぱ [WriteDate : Sun Nov 26 09:42:49 2000]

バギンズさんの言う通り!!

良く考えず、回答してしまいました。
反省しています。すみませんでした。

しかし、昨夜は、結構アルコールが入っていました...。 ^^;

バギンズさんご指摘ありがとうございました。
これもビシバシよろしくお願い致します!


フ−ミン [MAIL] [WriteDate : Sun Nov 26 14:55:11 2000]

お二人ともお手を煩わせて申し訳ありません。
本当にどうもアリガトウございます!

>バギンズさん
「1ページ目で送られてきた入力データを、2ページ目にINPUT TYPE=HIDDENで渡す」
の意味ですが、すみません。よく分からないです。
単に1ページ目(HTML)の最後に書いておけばいいっていう話ではないんですよね…。
CGIの方を何かいじくるんでしょうか?
しつっこくてホントに申し訳ないです。

バギンズ [WriteDate : Mon Nov 27 01:12:24 2000]

>ちゃいぱさん
私もよくとちって皆様にご迷惑をおかけしています。(^_^;)

>フーミンさん
>CGIの方を何かいじくるんでしょうか?
もしかして、質問ページはHTMLファイルでしょうか?
であれば、1ページ目はそれでもいいのですが、2ページ目は1ページ目の回答をINPUT TYPE=HIDDENで埋め込む必要があるので、CGIから出力する必要があります。

尚、質問ページがHTMLファイルであるという事ならば、CGIを修正しないでJavaScriptで処理する方法とかもあります。

あと、ちょっと気にかかったんですが、
>INPUT TYPEをhiddenにするのが何か関係あるんだと思うのですが…
って誰に聞きました?

フ−ミン [WriteDate : Mon Nov 27 02:38:21 2000]

>バギンズさん
どうもありがとうございます。
何となく出口が見えてきたような気がします。

>INPUTTYPEをhiddenにするのが何か関係あるんだと思うのですが… 
これを聞いた(というか読んだ)のは
エーアイ出版から出ている「最新HTML&CGI入門」という本です。
何か…変でしょうか?
基本的にこの本にくっついてたCDロムを参考にしてやってます。

とにかくどうもありがとうございました。
なるべく人に頼らないで頑張りたいと思います。

バギンズ [WriteDate : Tue Nov 28 10:28:33 2000]

>>INPUTTYPEをhiddenにするのが何か関係あるんだと思うのですが… 
>エーアイ出版から出ている「最新HTML&CGI入門」という本です。 
>何か…変でしょうか? 
いえ、変というのではなく、INPUT TYPE=HIDDENを使用するという時点で既に半分は答えが出ているようなものだったものですから...
もし誰かに聞いたり、何かを参考にしたなら、その補足説明をしたほうがわかりやすいかな?と思いました。

>なるべく人に頼らないで頑張りたいと思います。 
わからない事があったら、お気軽に質問してください。(^_^)

R-1 [MAIL] [URL] [WriteDate : Thu Nov 30 20:41:50 2000]

はじめまして。
R-1といいます。

ばぎんずさん、

>1ページ目で送られてきた入力データを、2ページ目にINPUT TYPE=HIDDENで渡してあげて

これの例を教えてください!!
リンクで代用しようとしたらURLに内容が見えてしまうし、ヘタに暗号化すると解読できないし処理重いし、ずっと困ってました・・・
どうか、よろしくおねがいします。


R-1 [MAIL] [URL] [WriteDate : Thu Nov 30 20:46:35 2000]

すみません、ひらがなでした(^^;
バギンズさんよろしくお願いします。

バギンズ [WriteDate : Thu Nov 30 22:55:59 2000]

>R-1さん
はじめまして(^_^)

CGIの方法でいいんですよね。

フォーム内の各入力項目の名前は
1ページ目で入力する項目を q1、q2、q3 とし、
2ページ目で入力する項目を q4、q5、q6 とした場合、

1ページ目のフォームには、以下の項目を入れておきます。
<input type=hidden name="page" value="1">
<input type=text name="q1">
<input type=text name="q2">
<input type=text name="q3">

※<input type=hidden name="page" value="1">は、CGIが何ページ目のフォームかを判断しやすくする為に入れておきます。

CGIで1ページ目のフォームを受信した際($FORM{'page'}==1の場合)には2ページ目の画面を表示するのですが、そのとき、2ページ目のフォームには、以下の項目を入れておきます。
<input type=hidden name="page" value="2">
<input type=hidden name="q1" value="1ページ目で入力したq1の値">
<input type=hidden name="q2" value="1ページ目で入力したq2の値">
<input type=hidden name="q3" value="1ページ目で入力したq3の値">
<input type=text name="q4">
<input type=text name="q5">
<input type=text name="q6">

これにより、CGIが2ページ目のフォームを受信した際($FORM{'page'}==2の場合)には、q1〜q6までが全て受信できるわけです。


><input type=hidden name="q1" value="1ページ目で入力したq1の値">
><input type=hidden name="q2" value="1ページ目で入力したq2の値">
><input type=hidden name="q3" value="1ページ目で入力したq3の値">
の部分をもっと具体的に書くと、

print '<input type=hidden name="q1" value="' . $FORM{'q1'} . '">' . "\n";
print '<input type=hidden name="q2" value="' . $FORM{'q2'} . '">' . "\n";
print '<input type=hidden name="q3" value="' . $FORM{'q3'} . '">' . "\n";

というような感じになります。
ヒアドキュメントを使用して一気に表示してもいいかもしれません。

また、CGI側でやるこの方法の他に、ブラウザ側でJavaScriptを使用する方法もあります。(でも、基本は一緒ですけど)

R-1 [MAIL] [URL] [WriteDate : Fri Dec 1 17:51:13 2000]

丁寧な解説ありがとうございます!m(_ _)m
よくわかりました。
早速今日試してみますね。
結果報告にまた来ます!

R-1 [MAIL] [URL] [WriteDate : Fri Dec 1 20:09:05 2000]

成功しました〜♪(⌒∇⌒)ノ
ちょっとvalueがvaalueになっていたという間抜けなミス+更新のし忘れで時間はかかっちゃいましたけど、完璧です!
どうもありがとうございました!

なるべく自分でやろうとは思ってるんですが、また詰まってしまったらよろしくお願いします m(_ _)m
それでは。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]