人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptについての質問です
あるページで、GETで渡されたパラメーターによって、プルダウンメニューの初期選択を変えたいと考えていますが、それは可能でしょうか。
可能であれば、サンプル等ありましたらお教えください。よろしくお願いします。

●質問者: n_maco2
●カテゴリ:インターネット ウェブ制作
✍キーワード:JavaScript パラメータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● llusall
●70ポイント ベストアンサー

JavaScriptで実装したサンプルです。

参考になりますでしょうか?


※GETでもらった引数は、「location.search」から取得できます。


1.html

<html>

<body>

<a href="2.html?myList=2">次ページ</a>

</body>

</html>

2.html

<html>

<body onload="setDropDownList();">

    <form>

        <select id="myList" >

        <option value="1">hoge1

        <option value="2">hoge2

        <option value="3">hoge3

        </select>

    </form>

</body>

</html>

<script type="text/JavaScript">

<!--

function setDropDownList(){

    // ドロップダウンリストの要素を取得

    var element = document.getElementById("myList");

    // GET引数から、myList=n の「n」の部分を取得

    var oSearch = new CLocationSearch(location.search);

    var lstVal = oSearch.item("myList");

    // ドロップダウンリストの初期選択

    element.value = lstVal;

}

// 参考 Javascript版 location.search汎用クラス

//       http://frog.raindrop.jp/knowledge/archives/000070.html

function CLocationSearch(sSource) {

    

    /* 初期化処理 */

    var sAry = new Array(); /* アイテム配列を追加 */

    {

        var nCur = 0, nRet = 0;

        var sSearch = sSource.substr(1);

        var sName, sValue;

                

        nRet = sSearch.indexOf('=', nCur)       // 最初の'='を検索

        while(nRet >= 0) {

            // '='以前が変数名

            sName = sSearch.substring(nCur, nRet);

            nCur = nRet + 1;

            

            // 値を取り出す

            nRet = sSearch.indexOf('&', nCur);  // 変数の区切りを検索

            if (nRet == -1) nRet = sSearch.length + 1;      // なければ最後まで

            sValue = sSearch.substring(nCur, nRet);

            

            // 配列に格納

            sAry[sName] = sValue;

            

            // 次を検索

            nCur = nRet + 1;

            nRet = sSearch.indexOf('=', nCur);

        }

    }

    

    /* 値 */

    this.valueOf = function () {

        return sSource;

    }

    

    /* 値を取り出すメソッド */

    this.item = function (sVarname) {

        try {

            return sAry[sVarname];  //あれば返す

        } catch(e) {

            return '';              //なければ空文字を返す

        }

    }

    

    /* 要素数 */

    this.length   = function () {

        return sAry.length;

    }

    

    /* toString */

    this.toString = function () {

        return this.length + '';

    }

    

}

//-->

</script>

◎質問者からの返答

ご回答ありがとうございました

助かりました!


2 ● ninja56
●2ポイント

http://javascript.maxux.com/

http://chaichan.web.infoseek.co.jp/qa4000/qa4336.htm

http://www.javaroad.jp/bbs/answer.jsp?q_id=20060627120624354

◎質問者からの返答

すみません、なにを見せたいのかよくわかりませんでした・・・

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ