代码之家  ›  专栏  ›  技术社区  ›  Ian

是否有一个jquery或js等价于php的$name=$\u get['name']

  •  1
  • Ian  · 技术社区  · 14 年前

    我正试图找到一种方法来读取使用javascript的表单中的方法信息。我们的IT部门将服务器锁定,作为Web团队,我们只能使用JavaScript来完成我们的任务。如果可以的话,我会使用PHP,但是我不能。

    如果可能的话,我需要做的是读取通过JS中的get方法发送的数据,这样我就可以将数据分配到变量中,并在用户对表单执行操作后在单个页面上使用它。

    即,如果在URL中发送数据 http://somesite.com?add_to_cart=true&items=10

    任何帮助都将不胜感激!

    2 回复  |  直到 14 年前
        1
  •  6
  •   Fosco    14 年前
    function getQuerystring(key, default_)
    {
      if (default_==null) default_=""; 
      key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
      var qs = regex.exec(window.location.href);
      if(qs == null)
        return default_;
      else
        return qs[1];
    }
    
    var addtocart = getQuerystring('add_to_cart','false');
    

    资料来源: http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx

        2
  •  6
  •   Blair McMillan    14 年前

    This page 有一个良好的运行。您不需要jquery来完成它。他们的jquery版本是:

    $.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];
      }
    });
    

    用于:

    // Get object of URL parameters
    var allVars = $.getUrlVars();
    
    // Getting URL var by its nam
    var byName = $.getUrlVar('name');