- ベストアンサー
URLパラメータを使ってフォームに事前に入力する方法
- URLにパラメータを付け足し、フォームに事前に入力する方法について調べました。
- Googleドキュメント専用の方法もあるようですが、うまく行かなかったので困っています。
- URLにパラメータを追加して指定のフォームに事前に入力する方法を教えていただけないでしょうか?
- みんなの回答 (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 ) とか
その他の回答 (2)
- lilillllililili
- ベストアンサー率71% (23/32)
<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 のようにアクセスすると値がセットされます。
お礼
おお! すごい!できました! ありがとうございます!
- askaaska
- ベストアンサー率35% (1455/4149)
仕組みはそんなに難しくありません フォームの画面にJavaScriptを埋め込み そのJavaScriptで ・URLの解析を行う ・解析した結果をフォームに反映する この2ステップだけで行えます。
お礼
なるほど! そういう方法があるんですね! ありがとうございます!
お礼
javascript以外にも方法があるんですね! 今の私にはCGIをすぐには使えないのですが、 今後使えるように、勉強していきます! ありがとうございます!