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

时间:2012-01-29 06:12:55

标签: php javascript get

我在snippr(http://snipplr.com/view.php?codeview&id=799)上发现了一个漂亮的小脚本,它给出了关联数组中的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(); 

我正在尝试检查是否设置了某个GET变量,以及该值是否为“search”。由于某些原因,即使条件不满足,我的代码也没有捕获If语句并发出警报。

if((get['search_housing']) = 'search') {
  alert('this works');
}

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

5 个答案:

答案 0 :(得分:5)

=运算符设置值。

您正在寻找==比较值:

if((get['search_housing']) == 'search') {
  alert('this works');
}

答案 1 :(得分:0)

if((get['search_housing']) == 'search') {

DOUBLE等于!

答案 2 :(得分:0)

也许需要这样:

if((get['search_housing']) == 'search') {
    alert('this works');
}

请注意,=表示您正在尝试将“搜索”分配给get []。

答案 3 :(得分:0)

请尝试使用gup。您找到的代码看起来不太健壮。您可能希望取消返回的值,因为您正在比较结果。

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];
}

答案 4 :(得分:0)

if(get('search_housing')==='search'){
  alert('test');
}