window.locationオブジェクトGET送信によるパラメータの受け渡し
- URLの?以降を取得〔searchプロパティ〕
- 他のページへ入力内容を渡す〔searchプロパティ使用〕
URLの?以降を取得
searchプロパティ
unknown
window.location.search
searchプロパティは、現在のURLの?以降の文字列を取得します。
オブジェクト名windowは省略可。
サンプルを見る
<script type="text/javascript">
function getdata(){
if(window.location.search){
/* URLの「?」以降のパラメータを変数nに代入 */
var n=window.location.search.substring(1,window.location.search.length);
/* テキストボックスにパラメータを表示 */
document.form3.elements["getpram"].value=n;
}
}
/* オンロード時に実行 */
window.onload=getdata;
</script>
<form name="form3" action="#">
取得したパラメータ:<input type="text" name="getpram" size="50" />
</form>
他のページへ入力内容を渡す
searchプロパティ使用
unknown
searchプロパティを使用して、送信先画面にパラメータから受取った情報をフォームに書き出す例です。 フォームの入力状態を送信先のフォームに確認用として表示するのに便利です。
オブジェクト名windowは省略可。

パラメータを渡す側
サンプルを見る
<script type="text/javascript">
/* パラメータを渡す側 */
function send() {
var name="";
var sex="";
var favorite="";
/* 名前(コード変換) */
if (document.form1.name.value!=""){
name=escape(document.form1.name.value);
}
/* 性別 */
if(document.form1.sex[0].checked){
sex=escape(document.form1.sex[0].value);
}else if(document.form1.sex[1].checked){
sex=escape(document.form1.sex[1].value);
}
/* 興味 */
for(i=1;i<=4;i++){
if(document.form1.elements["favorite"+i].checked){
favorite+=document.form1.elements["favorite"+i].value+" ";
}
}
favorite=escape(favorite);
/* 取得した値をパラメータにセット(アンパサンド'&'で連結) */
var pram="name="+name+"&sex="+sex+"&favorite="+favorite;
/* アドレスにパラメータを付加 */
location.href="/module/include/js/location4/test2.html?"+pram;
return false;
}
</script>
<!-- ★送信フォーム [start] -->
<form action="#" method="get" name="form1" onsubmit="return send();">
<fieldset>
<legend>パラメータに渡す値を入力</legend>
<p>
名前:<input type="text" name="name" value="" size="20" />
</p>
<p>
性別:
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</p>
<p>
趣味:
<input type="checkbox" name="favorite1" value="スポーツ" />スポーツ
<input type="checkbox" name="favorite2" value="映画鑑賞" />映画鑑賞
<input type="checkbox" name="favorite3" value="音楽鑑賞" />音楽鑑賞
<input type="checkbox" name="favorite4" value="仕事!" />仕事!
</p>
<p>
<input type="submit" value="送信" />
</p>
</fieldset>
</form>
<!-- ★送信フォーム [end] // -->
パラメータを受取る側
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>PHP & JavaScript Room: test2.html</title>
<script type="text/javascript">
/* パラメータを受取る側 */
function pramWrite() {
/* アドレスの「?」以降の引数(パラメータ)を取得 */
var pram=location.search;
/* 引数がない時は処理しない */
if (!pram) return false;
/* 先頭の?をカット */
pram=pram.substring(1);
/* 「&」で引数を分割して配列に */
var pair=pram.split("&");
var i=temp="";
var key=new Array();
for (i=0; i < pair.length; i++) {
/* 配列の値を「=」で分割 */
temp=pair[i].split("=");
keyName=temp[0];
keyValue=temp[1];
/* キーと値の連想配列を生成 */
key[keyName]=keyValue;
}
var name=sex=favorite="";
/* 名前 */
if (!key["name"] || key["name"]==""){
name="匿名希望";
}else{
/* コード変換 */
name=unescape(key["name"]);
}
/* 性別 */
if(key["sex"]!="") {
sex=unescape(key["sex"]);
}else{
sex="性別不明";
}
/* 興味 */
if(key["favorite"]){
favorite=key["favorite"];
}else{
favorite+="無趣味";
}
document.form1.pram.value="名前:"+name+"\n"+"性別:"+sex+"\n"+"趣味:"+unescape(favorite)+"\n";
}
</script>
</head>
<body onload="pramWrite()">
<form name="form1" action="#">
<fieldset>
<legend>受け取ったパラメータを表示</legend>
<textarea cols="40" rows="4" name="pram" style="border:0;overflow:visible" readonly="readonly"></textarea>
</fieldset>
</form>
</body>
</html>