嘿我想在javascript变量中从url获取值。 以下是演示网址:http://localhost/product.php?prod_id=MQ==&action=add 现在我想从url访问prod_id(MQ ==),然后对其进行解码并将其存储在javascript变量中。 任何人都可以帮我实现这个吗? 提前谢谢。
答案 0 :(得分:1)
首先,必须转义base64字符串,因为查询字符串中使用了有效的base64字符(例如=)。你可以用javascript中的escape()来做到这一点。
接下来,您需要解析查询字符串,并使用unescape()值再次获取base64字符串。解析查询字符串可能超出了此问题的范围,因为Web上有许多资源。
要解析字符串,首先从location.search中获取字符串,然后返回查询字符串(包括?)。既然你不需要'?'我建议使用.substring(1)来修剪它。接下来,你需要拆分()&符号'&'上的字符串所以你会得到一个像这样的数组: ['prod_id = MQ ==','action = add']。最后,取出该数组中的每个字符串并将其拆分为第一个'=',这将为您提供一个数组(2),其中第一个是键,第二个是值。
答案 1 :(得分:0)
这适用于现代浏览器。如果用正常函数替换箭头函数,它也可以在IE 10中工作:
function getFromQueryStringAndDecode ( query ) {
var base64 = location.search.substr( 1 ).split( /&/g )
.map( x => x.split( /^([^=]*)=/ ).slice( 1 ) )
.filter( x => x[0] === query )[0][1]
;
return atob( base64 );
}
// Usage:
getFromQueryStringAndDecode( 'prod_id' ); // '1'
答案 2 :(得分:-1)
首先从url获取值到这样的php变量:
<?php
$x = base64_decode($_GET["prod_id"]);
?>
然后将此值保存到隐藏文本字段中,如下所示:
<input type="hidden" id="product_id" value="<?php echo $x; ?>">
然后从隐藏文本字段获取此值到javascript变量。
$(document).ready(function(){
$value = $("#product_id").val();
}