我如何简单地使用 JQuery获取GET
和POST
值?
我想做的是这样的:
$('#container-1 > ul').tabs().tabs('select', $_GET('selectedTabIndex'));
我如何简单地使用 JQuery获取GET
和POST
值?
我想做的是这样的:
$('#container-1 > ul').tabs().tabs('select', $_GET('selectedTabIndex'));
对于 GET 参数,您可以从document.location.search
以下位置获取它们:
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
document.write($_GET["test"]);
对于 POST 参数,您可以将$_POST
JSON 格式的对象序列化为<script>
标签:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
当你在做这件事时(在服务器端做事),你也可以在 PHP 上收集 GET 参数:
var $_GET = <?php echo json_encode($_GET); ?>;
注意:您需要 PHP 5 或更高版本才能使用内置json_encode
函数。
更新:这是一个更通用的实现:
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);
有一个 jQuery 插件可以获取 GET 参数,名为.getUrlParams
对于 POST,唯一的解决方案是使用 PHP 将 POST 回显到 javascript 变量中,就像 Moran 建议的那样。
为什么不使用好的旧 PHP 呢?例如,假设我们收到一个 GET 参数“目标”:
function getTarget() {
var targetParam = "<?php echo $_GET['target']; ?>";
//alert(targetParam);
}
或者你可以使用这个http://plugins.jquery.com/project/parseQuery,它比大多数小(缩小 449 字节),返回一个表示名称-值对的对象。
对于任何服务器端语言,您都必须将 POST 变量发送到 javascript 中。
。网
var my_post_variable = '<%= Request("post_variable") %>';
请注意空值。如果您尝试发出的变量实际上是空的,您将收到一个 javascript 语法错误。如果你知道它是一个字符串,你应该用引号把它包起来。如果它是一个整数,您可能需要在将该行写入 javascript 之前测试它是否确实存在。