如何使用JavaScript在PHP GET变量上运行if语句?
我在snippr()上找到了一个很好的小脚本,它提供了关联数组中的GET变量如何使用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
// 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');
}