2

PHPの方法と同様に、URL内のPOSTをjQueryで確認する方法はありますか?

PHP のバージョン:

if(!empty($_GET)) { // do stuff }

ごめん。つまり、POST ではなくGETです。

ページの読み込み時に URL を取得しようとしています$(document).ready( function() { // here });

URL の例:http://www.domain.com?a=1

value of the var aそして、関数に過去よりもOnLoad();

4

5 に答える 5

3

jquery を拡張して URL 変数を取得する

$.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return $.getUrlVars()[name];
  }
});

その後、あなたは呼び出すことができます

if($.getUrlVars().length > 0){ // do something }

特定の値をクエリすることもできます

if($.getUrlVar('name') == 'frank'){
于 2011-11-04T11:13:36.997 に答える
2

新しい答え

JavaScript を使用して、クエリ文字列があるかどうかを確認します。

if(location.search.length > 0)
    alert('Horay horah!');

クエリ文字列内の実際のデータを取得する必要がある場合は、Query String Object jQuery プラグインを使用するか、location.searchテキストの解析に取り掛かります。

于 2011-11-04T11:02:40.163 に答える
2

JQuery を使用して QueryString パラメーターを取得する場合は、次のコードを使用することをお勧めします。パラメーターをグローバル変数に格納し (苦情の合図です!)、クエリ文字列をその変数に解析します。

var urlParams = {};
(function () {
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = window.location.search.substring(1);

    while (e = r.exec(q))
       urlParams[d(e[1])] = d(e[2]);
})();

使用例:

URL = http://www.mywebsite.com/open?abc=123&def=234

alert(urlParams["abc"]);

値「123」のアラートが表示されます。

于 2011-11-04T11:03:16.250 に答える
1

これを行うためのjqueryプラグイン:

/*
jQuery Url Plugin
* Version 1.0
* 2009-03-22 19:30:05
* URL: http://ajaxcssblog.com/jquery/url-read-get-variables/
* Description: jQuery Url Plugin gives the ability to read GET parameters from the actual URL
* Author: Matthias Jäggli
* Copyright: Copyright (c) 2009 Matthias Jäggli 
* Licence: dual, MIT/GPLv2
*/
(function ($) {
    $.url = {};
    $.extend($.url, {
        _params: {},
        init: function () {
            var paramsRaw = "";
            try {
                paramsRaw =
                    (document.location.href.split("?", 2)[1] || "").split("#")[0].split("&") || [];
                for (var i = 0; i < paramsRaw.length; i++) {
                    var single = paramsRaw[i].split("=");
                    if (single[0])
                        this._params[single[0]] = unescape(single[1]);
                }
            }
            catch (e) {
                alert(e);
            }
        },
        param: function (name) {
            return this._params[name] || "";
        },
        paramAll: function () {
            return this._params;
        }
    });
    $.url.init();
})(jQuery);

使用法:$.param("key")あなたの例では$.param('a')

于 2011-11-04T11:24:04.340 に答える
1

いいえ。JavaScript は POST データにアクセスできません。

PHP でチェックを行い、結果を知らせるために変数を設定する JavaScript を出力する必要があります。

例えば

if(!empty($_POST))
  echo "<script type='text/javascript'> post_not_empty = true; </script>"; 
于 2011-11-04T11:02:12.850 に答える