« マイブーム | トップページ | PHPでBasic認証のパスワードを作ってみよう »

2007年03月09日

JavaScriptでGETを取得する

プログラムでURLの引数(GET)を取得する場合、PHPでは「$_GET」や「$_REQUEST」を使いますがJavaScriptではGETを取得する機能はありません。
PHPやPerlなどが使えるサーバであればいいのですが使えない場合、JavaScriptでGETを取得するにはどうしたらよいのでしょうか?
今日はJavaScriptでGETを取得する方法を紹介します。やり方は非常にシンプルでJavaScriptでは「location.search」というURLの「?」以下を取得できるプロパティがあり、それを分解するだけで簡単に使えます。
ただし、URLエンコードされたままなので半角英数以外は使えません。
と、自分で書いて思うのですがあまり使い道はなさそうだなぁ。。。
なぜ書いたかと言うと実際に仕事で使いましたので、次回からすぐに調べられるようにメモ書き程度に書くことにしました^^;

以下のスクリプトを追加して

function getRequest(){
  if(location.search.length > 1) {
    var get = new Object();
    var ret = location.search.substr(1).split("&");
    for(var i = 0; i < ret.length; i++) {
      var r = ret[i].split("=");
      get[r[0]] = r[1];
    }
    return get;
  } else {
    return false;
  }
}

最後に
var get = getRequest();

と記述すればOKです。
もし「http://xxxxxxx/xxx.html?id=3&code=test」というURLでアクセスした場合、
get['id']; // 「3」
get['code']; // 「test」

で、各GETを扱えます。先に述べたように日本語は使えません。
日本語を使う場合はURLデコードしなきゃいけないので、これはちょっと大変そうだなぁ^^;

トラックバック

このエントリーのトラックバックURL:
http://www.s-memo.net/mt/mt-tb.cgi/33

コメント

なにげに必要になって調べていたらここにたどり着きました。

助かりました。

Furuさんコメントありがとうございます。
またいつでもいらしてください。

もう少しでFlashに逃げるところでこのページに気づきました。
感謝ですm(_ _)m

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)