1. ホーム
  2. javascript

[解決済み] JQueryでGETとPOSTの変数を取得するには?

2023-01-16 05:05:30

質問

どのようにすれば、単純に GETPOST の値を JQuery で変更できますか?

私がしたいことは、このようなものです。

$('#container-1 > ul').tabs().tabs('select', $_GET('selectedTabIndex'));

どのように解決するのですか?

GET パラメータについては document.location.search :

var $_GET = {};

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
    function decode(s) {
        return decodeURIComponent(s.split("+").join(" "));
    }

    $_GET[decode(arguments[1])] = decode(arguments[2]);
});

document.write($_GET["test"]);

POST パラメータの場合、シリアライズして $_POST オブジェクトを JSON 形式でシリアライズし <script> タグに変換します。

<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;

document.write($_POST["test"]);
</script>

今のうちに(サーバーサイドでいろいろやって)、PHPでGETパラメータも集めておくといいかもしれません。

var $_GET = <?php echo json_encode($_GET); ?>;

注意 PHP バージョン 5 以降では、組み込みの json_encode 関数を使用するには、PHP バージョン 5 以上が必要です。


更新しました。 より汎用的な実装を紹介します。

function getQueryParams(qs) {
    qs = qs.split("+").join(" ");
    var params = {},
        tokens,
        re = /[?&]?([^=]+)=([^&]*)/g;

    while (tokens = re.exec(qs)) {
        params[decodeURIComponent(tokens[1])]
            = decodeURIComponent(tokens[2]);
    }

    return params;
}

var $_GET = getQueryParams(document.location.search);