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

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

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

いつもお世話になります。 URLに何か細工をして、フォームに事前に入力ができることができたらと思い、 調べているのですが、 下記サイト↓ http://support.google.com/docs/bin/answer.py?hl=ja&answer=160000 に、URL パラメータを使ってフォームに事前に入力する方法が書かれているのですが、 Google ドキュメント専用なのか、うまく行きませんでした。 そもそも、無理なのかもしれないのですが、 もし、URLにパラメータを付け足して、 指定のフォームに事前に入力する方法がありましたら、 お教え頂けないでしょうか? よろしくお願い致します。

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • 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

  • Googleに詳しい方居ますか

    Web上ではサイトは公開されていますが、Googleの検索の登録?では確認されずにサーバ側のエラー表示404と出ます。 http://www.google.com/support/webmasters/bin/answer.py?answer=35658&hl=ja http://www.google.com/support/webmasters/bin/answer.py?answer=35220&hl=ja 上記URLでの説明について読んだのですが、内容について理解できずにいて困っています。 詳しい方が居たら教えてください。 よろしくお願いします。

  •  サイドウィキって?

     ヘルプが簡略すぎるので、もうすこし分りやすく教えてください。 http://www.google.com/support/toolbar/bin/answer.py?answer=157301&hl=ja ── Google プロフィールでのサイドウィキ

  • google docs のリンクが表示されない

    google docsにアップロードしたファイルをgoogleアカウントを持たない知り合いに公開したいのですが、ヘルプに示されている「リンクを知っている全員」という表示が共有ボタンを押した時に出てきません。設定方法などありましたらお教え頂ければ幸いです。 http://docs.google.com/support/bin/answer.py?hl=jp&answer=180199

  • Googleドキュメントで長い行の表示を切り詰める

    Googleスプレッドシートでは スプレッドシートでは、セル内のテキストを切り詰めたり、折り返したり、はみ出させたりすることができます。 https://support.google.com/docs/answer/141104?hl=ja ということができるようなのですが、ドキュメントの表で同じことはできないでしょうか? (あるいは表の外でもかまわないので、表示を切り詰める方法はないでしょうか)

  • robots.txtについてお尋ねします。

    googleの検索へHPを登録させたいのですが、robots.txt解析結果というのが表示さらrobots.txt無効 と出ました。 これは、どういう事なのでしょうか あまりこう言ったものには詳しくないので困っています。 http://www.google.com/support/webmasters/bin/answer.py?answer=35220&hl=ja 上記URLのヘルプ検索から「robots.txt無効」をキワード入力したのですが、難しくて意味がよくわかりません。 何方かご存知の方が居ましたら教えて頂きたいのですが 宜しくお願いします。

  • niftyへの連絡方法

    変な書き込みをされたので、Googleのcache削除依頼 (http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=1663688) をしたのですが、@niftyへのcache削除依頼の方法が分かりません。 @niftyへのcache削除依頼はどのようにすればいいのでしょうか。

  • リンククリックとリンクコピー後アドレスバー入力の違

    すいません素人の質問です。 Webブラウザでリンクを直接クリックするのと、リンクをコピーしたあとアドレスバーに入力しての移動の違いをサーバー側はどうやって検出するのですか? このページ↓の説明を読んで疑問に思いました。 http://support.google.com/adsense/bin/answer.py?hl=ja&answer=1112983 「自分のサイト内の広告だからといって安易にクリックしない。 単なる興味やリンク先 URL の確認のためであっても、自分のサイト内の広告をクリックすることは禁止されています。広告を直接クリックする代わりに、広告の URL をブラウザのアドレス バーに直接入力してください。」

    • ベストアンサー
    • HTML
  • パスワードがはじかれて削除できない

    googleアカウントを完全削除したいので、やり方を検索し、そのとおりにやってみました。 http://support.google.com/accounts/bin/answer.py?hl=ja&answer=32046 しかし、パスワードがはじかれて画面が更新されず、どうしても削除できません。 (正しく入れているにもかかわらず。また、テキストエディタに正しいパスワードを打って、 それをコピーアンドペーストしても不可) どなたか原因と解決方法をご存知の方いらっしゃいましたらお願いします。

  • gmailアカウントが無効に

    gmailのアカウントが突然無効になりました。 心当たりは全くありません。 検索してみたのですが、 http://mail.google.com/support/bin/answer.py?answer=61805&hl=ja こちらでも歪んだ文字が出てきません。 問い合わせをしても返事がありません。 自動返信もないのですが、無い物なのでしょうか? 何か解決方法はありませんでしょうか? このアドレスが消えたのはどうにかなっても、他にもgmailを使っているのでそちらもいきなり無効になるのではないかととても不安です。

  • メールソフトで送受信ができない!?

    Appleの「Mail」で、Gmailを送受信できるように設定しました。 そして、ちゃんと送信できるかな、と自分のアドレス(Gmailのものや、それ以外のものも)にメールを送ったのですが、エラーが出て送信できませんでした。 次に、受信はできるのかな、と「受信」ボタンを押してメッセージの確認をしたのですが、できませんでした。(「拒否されました」(←よく覚えていないのですが、こんな感じの言葉がエラーメッセージに書いてありました。) 設定をどこか間違ったのかと思い、http://mail.google.com/support/bin/answer.py?answer=13275&hl=ja ←を見て確認したのですが、どこも間違っていませんでした。 私はもう一つ、Thunderbirdも持っているので、http://mail.google.com/support/bin/answer.py?answer=38343&topic=1556を見て設定しましたが、送受信できませんでした。 ↑のことについて、原因や対処方法が分かる方、回答お願いします。

専門家に質問してみよう