• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:URL パラメータを使ってフォームに事前に入力する)

URLパラメータを使ってフォームに事前に入力する方法

このQ&Aのポイント
  • URLにパラメータを付け足し、フォームに事前に入力する方法について調べました。
  • Googleドキュメント専用の方法もあるようですが、うまく行かなかったので困っています。
  • URLにパラメータを追加して指定のフォームに事前に入力する方法を教えていただけないでしょうか?

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

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

javascriptを使う方法も一案ですが、javascriptを使えない--使わない設定にしていると当然無効です。  もっとも一般的に使われている方法は、PATH_INFOやQUERY_STRINGS、標準入力(STDN)を使って動的にフォーム自体を出力する方法です。  URLは、ドメイン名+ファイルへのパス+QUERY_STRINGSの組み合わせですから、それをCGIで解釈すれば簡単ですし、入力チェックなど様々に応用が利きます。サーバーがHTTPで要求を受けるとき、QUERY_STRINGS(?の後ろに続く文字列)を環境変数(QUERY_STRINGS)に格納し、ファイルを探し始めますが、そのファイルが無い場合はPATH_INFOに格納して、その上のディレクトリを探します。そこにも無ければ、さらにそれを探していきます。最終的にファイルが見つかり、かつそれが実行ファイルである場合、入手したQUERY_STRINGS,PATH_INFO,STDNを使用して実行しその結果を返します。---一般的なCGIの動作ですね。  CGIの最後 __END__ の後に、フォームを置いておきます。書き換える必要があるところには、キーワードを入れておきます。 __END__ <!doctype html> <head> <meta charset="utf-8"> <title>フォーム</title> ・・・【中略】・・・ <form action="">  <input type="text" name="name" value="__USER_NAME__"> ・・・【中略】・・・ CGI print q~content-type:text/html・・・【中略】・・・~;  while<DATA>{   s/__USER_NAME__/$userName/; ・・・【中略】・・・  入力チェック、メールアドレスの整合性、エラー部分の表示や、そもそものリンク元の情報によってフォームの一部を書き換えるなど応用が利くと思います。どのようなデータを受け取ることができるかは・・ Enviroment Variable and FORM,COOKIE ( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/peguule/test.html?name=peguule ) とか

peguule
質問者

お礼

javascript以外にも方法があるんですね! 今の私にはCGIをすぐには使えないのですが、 今後使えるように、勉強していきます! ありがとうございます!

その他の回答 (2)

回答No.2

<html> <head> <script type="text/javascript"> <!-- var qsParm = new Array(); var query = window.location.search.substring(1); var parms = query.split('&'); for (var i=0; i<parms.length; i++) { var pos = parms[i].indexOf('='); if (pos > 0) { var key = parms[i].substring(0,pos); var val = parms[i].substring(pos+1); qsParm[key] = val; } } function into(){ document.getElementById("target").value = qsParm["text"]; } // --> </script> </head> <body onload="into()"> <input type="text" id="target"/> </body> </html> こんな感じでどうでしょう。index.htmlなら、index.html?text=hello_world のようにアクセスすると値がセットされます。

peguule
質問者

お礼

おお! すごい!できました! ありがとうございます!

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

仕組みはそんなに難しくありません フォームの画面にJavaScriptを埋め込み そのJavaScriptで ・URLの解析を行う ・解析した結果をフォームに反映する この2ステップだけで行えます。

peguule
質問者

お礼

なるほど! そういう方法があるんですね! ありがとうございます!

関連するQ&A