如何使用JavaScript在PHP GET变量上运行if语句?

如何使用JavaScript在PHP GET变量上运行if语句?,php,javascript,get,Php,Javascript,Get,我在snippr()上找到了一个很好的小脚本,它提供了关联数组中的GET变量 // Read a page's GET URL variables and return them as an associative array. function getUrlVars() { var vars = [], hash; var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).spl

我在snippr()上找到了一个很好的小脚本,它提供了关联数组中的GET变量

// Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    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;
}

var get = getUrlVars(); 

我不知道为什么它不尊重我的If声明。我的代码有问题吗?

运算符设置值

您正在查找比较值的
=

if((get['search\u housing'])=='search'){


双等于!

可能需要这样:

if((get['search_housing']) == 'search') {
    alert('this works');
}
请参阅,
=
表示您正在尝试将“搜索”分配给get[]。请改为尝试。找到的代码看起来不太可靠。您可能希望取消扫描返回值,因为您正在比较结果

if (gup('search_housing') == 'search') { ... }

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

没有URL解码,任何查询字符串解析器都是健壮的。@AtesGoral-对取消跳过做了一个说明,虽然我个人总是在值检索之外这样做,因为我想要编码的值。我可以看到一些边缘情况,您可能想这样做,但一般来说,在解析器中不处理取消跳过是违反层的。提示:寻找一个pr执行URL解码的oper查询字符串解析器。可能:
if((get['search_housing']) == 'search') {
    alert('this works');
}
if (gup('search_housing') == 'search') { ... }

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
if(get('search_housing')==='search'){
  alert('test');
}