简体   繁体   中英

How can I run an if statement on a PHP GET variable using JavaScript?

I found a nice little script on snippr( http://snipplr.com/view.php?codeview&id=799 ) that gives me the GET variables in an associative array.

// 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(); 

I am trying to check to see if a certain GET variable is set and if the value is 'search'. For some reason my code is not catching the If statement and alerting even if the condition is not met.

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

I'm not sure why it's not respecting my If statement. Is there something wrong with my code?

The = operator sets the value.

You're looking for == , which compares values:

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

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

双等于!

Maybe it needs to be this:

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

See, the = would mean you are trying to assign 'search' to the get[].

Try gup instead. That code you found doesn't look very robust. You probably want to unescape the returned value because you are comparing the results.

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');
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM