• ベストアンサー

フォームについて

ネットショップによくある「商品詳細ページ」で、カラーやサイズを選べるセレクトボタンがついていますが、ここで好みのカラー、サイズを選んでもらい、その下に設置した「フォームへ」ボタンを押すと、次の「フォーム入力画面」に移動します。 そこではカラー、サイズ部分は自動で前のページで選択したものが入力されていて、その他の情報を入力して完了ということをしたいのですが。。。 いろいろ調べましたがわかりませんでしたので、どなたかご回答お願いいたしますm(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

回答と補足を見た所、 ・入力した内容を別のページで表示したい ・フォーム送信のCGIはフリースクリプトを利用している ということでしょうか。勘違いだったらすみません。 送信されたフォームデータを別のページに遷移しても維持するには 主に、Cookieを使う方法とセッションを使う方法があります。 Cookieを使うのが一般的だと思いますが、 使っているCGIスクリプトにその機能が無ければ自分で組み込むか、 別のCookie対応スクリプトに変更する必要があります。 ただし、Cookieの場合はJavascriptでも利用可能ですので、 CGIを変更する代わりにJavascirptを使用する、という手もあります。 Javascriptの場合はprototypeなどのフレームワークや、Cookieのライブラリを使用すると便利です。 Cookieの例: 1.「商品詳細ページ」で、カラー・サイズのセレクトボタンからフォーム送信 (送信するタイミングは、フォームへボタンが押された時) 2.送信されたデータをJavascriptまたはCGIで受け取り、内容をCookieへ保存 3.「フォーム入力画面」が表示される時に保存されているCookieを読み出してテキストボックスやセレクトメニュー等へ反映

No_3710
質問者

お礼

tenderfeelさん ご回答ありがとうございます。 まさにその通りのことがやりたいと思っています。 ajaxのフレームワークかCookieライブラリですね、 ちょっと探して挑戦してみたいと思います。

No_3710
質問者

補足

いろいろ試したところ私の力不足で実現はできませんでした。 それでもあきらめきれず本で調べましたが無理でしたので再度ここで質問させてください。 実際にあるモンベルのサイトなのですが このページのようにしたいと思っております。 http://webshop.montbell.jp/goods/disp.php?product_id=1102383 選んだ物が次のフォームの記入欄に自動で反映される仕組みです。 よろしくお願いします!

その他の回答 (3)

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.3

フォームのHTMLを直接呼び出しても変数に値は代入されません。 CGIプログラムでフォームHTMLを読み込んで、$XXXX を入力された値に書き換えて出力する、ということです。 この後、どういうことをされたいのかわかりませんので何ともいえません。 >そこではカラー、サイズ部分は自動で前のページで選択したものが入力されていて、その他の情報を入力して完了ということをしたいのですが。。。 情報を入力して完了、では何にもなりません。 入力された情報を意図したように処理して完了です。

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

前の画面で選んだカラー、サイズを次の画面のフォームに自動入力させたいのなら、 フォームのカラー、サイズのinputタグのvalue属性値に変数で書いておけばいいです。 <input type="text" name="color" value="$XXXX" size="10"> <input type="text" name="size" value="$XXXX" size="10"> select、radioで選択状態にするなら CGIスクリプトの中にそれ用のコードを書くか、javascriptを書きます。 ※#1 回答の「disabled」は「selected」のtypoですね。disabledだと無効化ですからデータが送られなくなっちゃいます。 <input type="hidden" name="collor" value="hidden">はわからないです。私の勘違いかな?

No_3710
質問者

お礼

ご回答ありがとうございます。 value="$color"といれましたがそのまま表示されてしまったのですが。 すみません、html,cssしかわからないもので・・・。 またCGIはフリーであるもメールcgi用のものを使えばいいのでしょうか? お手数ですが、よろしくお願い致します!

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

普通のCGIと同じように、次の段階で出力するHTMLに、 <select name="collor"><option value="red">赤<.option>・・・</select>となっていた部分を<select name="collor" disabled><option value="red">赤<.option>・・・</select>とすればよいだけでは?・・このとき<input type="hidden" name="collor" value="hidden">を忘れずに・・。

No_3710
質問者

お礼

ありがとうございます。 上記のコードで次のフォームに反映されて、それがグレーアウトするってことですよね? htmlの基礎はわかるのですが、cgiはいつもフリーのものを使っているので、そちらは特にいじらなくても飛ばせるんでしょうか? また、フォームのページでセレクトボタンではなく、 type="text"にそのカラー名を表示されることも可能でしょうか? よろしくお願い致します。

関連するQ&A