http://oshiete.goo.ne.jp/qa/8211303.html
上記質問の続きです。
Q1,Q2,Q3・・・と質問をいくつか用意し、
それぞれで選択したラジオボタンによって、最終ページに表示させる回答を変えたいです。
ひとつ前のページで選択したものを次ページに反映させることはなんとかできたのですが
何ページも前に選択した回答を、最終ページに反映させる方法がわかりません。
<input type="hidden"を使うところまでは教えていただいたのですが
具体的にどうしていいかわかりません。
参考サイト等ありましたら教えていただけますでしょうか。
よろしくお願いいたします!
ちなみに作成方法は以下のような感じです。
【Q1】
<form name="q1" action="com.cgi" method="POST">
<input type="hidden" name="stage" value="q1" />
<ol>
<li><input type="radio" name="q11" value="q11_a"> 犬がすき</li>
<li><input type="radio" name="q11" value="q11_b"> 猫がすき</li>
<li><input type="radio" name="q11" value="q11_c"> うさぎがすき</li>
</ol>
<ol>
<li><input type="radio" name="q12" value="q12_a"> 右利き</li>
<li><input type="radio" name="q12" value="q12_b"> 左利き</li>
</ol>
<input type="submit" value="次へ" />
【Q2】
<form name="q2" action="com.cgi" method="POST">
<input type="hidden" name="stage" value="q2" />
<ol>
<li><input type="radio" name="q21" value="q21_a"> 海がすき</li>
<li><input type="radio" name="q21" value="q21_b"> 山がすき</li>
<li><input type="radio" name="q21" value="q21_c"> 散歩がすき</li>
</ol>
<input type="submit" value="次へ" />
【Q3】
<form name="q3" action="com.cgi" method="POST">
<input type="hidden" name="stage" value="q3" />
<ol>
<li><input type="radio" name="q31" value="q31_a"> 男性</li>
<li><input type="radio" name="q31" value="q31_b"> 女性</li>
</ol>
<ol>
<li><input type="radio" name="q32" value="q32_a"> 既婚</li>
<li><input type="radio" name="q32" value="q32_b"> 未婚</li>
</ol>
<input type="submit" value="判定" />
【最終ページ】
「あなたは犬がすきで右利きですね」
「あなたは海がすきですね」
「あなたは女性で既婚ですね」
と表示させたいです。
実際には、Q1→Q2→Q3と順番にページが飛ぶのではなく、
この答えだったら次はこのページ、それ以外は別のページ、
といった感じで、様々なページに飛びます。
以下のような感じで条件分岐を書いています。
if ($stage eq "q1") {
if ($q11 eq "q11_a") {
Q2();
}
elsif ($q11 eq "q11_c") {
・・・;
}
elsif ($q12 eq "q12_b") {
Q3();
}
else {
・・・;
}
}
よろしくお願いいたします!
No.2
- 回答日時:
お礼のリストを見たのですが、黒星印のinputタグは次に送信する<form></form>内にちゃんと収まっているのでしょうか?
次の送信時のFORMタグに囲まれたところに無いので、次のCGI表示に反映されないのでは?
ご回答いただきありがとうございます!
コードを省略しすぎてしまって申し訳ありません。
inputはformのなかに入れてます。
Q2の回答は表示されるのに
Q1の回答が表示されないんです・・・。
またお気づきの点ありましたら教えてください。
よろしくお願いいたします!
<form name="q3" action="com.cgi" method="POST">
<input type="hidden" name="stage" value="q3" />
・・・
<input type="text" name="q11a" value="$q11" />☆
<input type="text" name="q12a" value="$q12" />☆
<input type="text" name="q21a" value="$q21" />★
<input type="text" name="q22a" value="$q22" />★
<input type="text" name="q23a" value="$q23" />★
・・・
<input type="submit" value="判定" />
</div>
</form>
No.1
- 回答日時:
というより、
⇒CGIで得た内容をHTMlページに代入 - CGI - 教えて!goo( http://oshiete.goo.ne.jp/qa/8217674.html )
ですね。
送られてきたデータは、それがhiddenだろうがradioだろうが、全く区別はありませんから、そのまま得られたデータを、
$FORM{$name}=$value;
$hidden .= "<input type=\"hidden\" name=\"$name\" value=\"$value\">";
とでもして代入しておけば、良いですよ。
上記では、60から70行目あたりで
$HIDDEN .="<input type=\"hidden\" name=\"Q2\" value=\"$FORM{'Q2'}\"><input type=\"hidden\" name=\"Q1\" value=\"$FORM{'Q1'}\">";
としていますが、それも同様のことをしています。
ありがとうございます!重複した質問をしてしまって申し訳ありません。
CGIの初心者でよくわかっていないのですが
いただいたコードはページは飛ばず、ひとつのページ内に
いくつか質問が表示されているものなのかな?と思いました。
(違ってたらすみません)
以下の点について質問させてください。
Q1ページに「次へ」ボタンを設置しQ2へ飛ぶようにしています。
Q2ページでQ1の回答を表示させることはできたのですが、
その後Q2ページからQ3ページに飛んだとき、
Q3ページにQ1ページの回答を表示させることができませんでした。
Q2,Q3ページのCGIは以下のように書きました。
(目で見てデータが飛んでるかわかるように
<input type="hidden"でなく<input type="text"を使いました。)
print <<Q2;
<html>
<head>
<title></title>
</head>
<body>
・・・
<input type="text" name="q11a" value="$q11" />★
<input type="text" name="q12a" value="$q12" />★
・・・
</body>
</html>
Q2
↑★部分には、Q1で選択した回答が表示されました。
print <<Q3;
<html>
<head>
<title></title>
</head>
<body>
・・・
<input type="text" name="q11a" value="$q11" />☆
<input type="text" name="q12a" value="$q12" />☆
<input type="text" name="q21a" value="$q21" />★
<input type="text" name="q22a" value="$q22" />★
<input type="text" name="q23a" value="$q23" />★
・・・
</body>
</html>
Q3
↑★部分には、Q2で選択した回答が表示されましたが
☆部分は空欄のままでした。
どのようにしたら前の前のページの回答が表示されますか?
引き続きお願いいたします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP $_SESSIONについて教えて下さい。 2 2023/03/02 09:18
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
CGIについてです。教えて下さい...
-
フォームを再送信しますか?
-
入力フォーム(電話番号)
-
POSTメソッドの最大容量について
-
CGIでラジオボタンの選択結果を...
-
めちゃきれい
-
number 改行が追加できない
-
生成AI画像について
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックスの返す値
-
別formのhidden項目を自form値...
-
チェックボックスで選択した内...
-
Error: No Recipient というエ...
-
hiddenで送ったデータの取り出し方
-
ボタンの処理
-
チェックボックスでのvalue値の...
-
フォームの入力内容の後ろに文...
-
掲示板の文字色指定について
-
CGI→CGI変数の引き継ぎは...
-
携帯用アンケートページを作成...
-
フォームの年号リストの自動更新
-
クリップボードに記憶した文字...
-
メールフォームで良いサイト
-
複数の検索のページをつくりたい
-
プルダウン&キーワードで
-
CGIに渡しているパラメータを表...
-
複数ボタンのvalueを送れない
-
CGIでチェックボックスを使...
-
テキストエリアのデータを隠し...
おすすめ情報